MongoDB#基本操作

本文我會介绍 MongoDB 的基本操作和概念。

Reference Link

Mongodb#在Raspberry Pi4中安裝Mongodb
MongoDB#在Ubuntu中安裝MongoDB

NonSQL?

非數據庫(NoSQL)是關係數據庫(SQL 數據庫)以外的數據庫管理系統的總稱。 NoSQL 數據庫的數據模型和架構與傳統關係數據庫有不同的概念。

Mongo DB?

MongoDB 是一種非關係型數據庫管理系統(NoSQL DBMS)。 MongoDB 以一種稱為Document的 JSON 格式存儲數據。數據模型是可以輕鬆添加或更改字段。

Database

MongoDB 中的數據庫是 MongoDB 數據管理的頂層,它將相關集合(相當於表)分組。

每個數據庫都有一個名稱,並可包含多個集合。

它們還能為不同的應用和用例維護和管理獨立的數據。

我們可以執行以下命令來創建名為 “mydb “的數據庫。

use mydb

該命令以指定名稱創建數據庫。如果數據庫已經存在,則切換到現有數據庫。

Collections

MongoDB Collections是 MongoDB 數據庫中Document(數據記錄)的分組。集合用於對相關Document進行邏輯分組。

Collections與關係數據庫表類似,但有一些重要區別。具體來說,MongoDB 集合不需要預定義特定字段或結構。每個Document都可以有不同的字段和結構。

例如,我們想像一下博客應用程序的數據模型。博客數據庫中可能有多個集合。

  • “users” Collections存儲用戶信息
  • “posts” Collections可能包含博客文章

每個Collections中的Document都以 JSON(或 BSON)格式表示。每個Document對應該集合中的一條數據記錄。文檔具有字段-值對,每個字段在Document中都是唯一標識的。

在 MongoDB 中,Collections是動態創建的。如果你向一個還不存在的Collections中插入數據,MongoDB 會自動創建它。

Documents

MongoDB Documents是在 MongoDB 數據庫中處理的數據單元。 Documents以 JSON 格式表示並存儲在 MongoDB 中。

Documents是與關係數據庫中的記錄相對應。每個Documents都被視為Collections中的一個數據記錄,而 MongoDB 的特點之一就是Documents是無模式的。這意味著單個Documents可以有不同的字段和結構。

Documents由成對的字段及其值組成。

  • 字段是名稱(鍵)和值的組合
  • 可有任意數量的字段
  • 字段值可以有不同的數據類型
    • 字符串
    • 數值
    • 數組
    • 嵌入文件
    • 等等

例如,下面是一個用戶文Documents例:

該Documents包含 “姓名”、”年齡 “和 “電子郵件 “等字段。 “地址”字段包含一個嵌入文檔,”興趣 “字段包含一個數組。

{
  “name”: “John Doe”,
  “age”: 30,
  “email”: “john@example.com”,
  “address”: {
    “street”: “123 Main St”,
    “city”: “New York”,
    “country”: “USA”
  },
  “interests”: [“reading”, “music”, “sports”]
}

在 MongoDB 中,Documents是靈活的,可以根據需要添加或更改字段。靈活更改數據模型的優勢在於,它很容易適應應用程序開發和數據演進。

Operation

現在我們來看看 MongoDB 的簡單操作。

mongodb Shell

使用 mongo 命令啟動 mongodb shell。

ubuntu@ubuntu:~$ mongo

>

use db

使用 use 命令創建數據庫。

> use testdb
switched to db testdb

show dbs

使用 show dbs 命令來表示數據庫,如果數據庫為空,則不會顯示數據庫。

> show dbs
admin      0.000GB
config     0.000GB
dbStation  0.000GB
local      0.000GB
myDB       0.000GB
tanks      0.000GB

Create Collections

使用 db.createCollection() 創建Collections(相當於 SQL 中的表)。

下面的示例創建了一個名為 MyCollections1 的Collections。

> db.createCollection(“MyCollections1”)
{ “ok” : 1 }

Insert Documents

下一步是使用 insertOne() 向剛剛定義的Collection中插入Documents(相當於 SQL 中的記錄)。

>db.MyCollections1.insertOne({plc:”Beckhoff”,model:”CX6920″,TwinCATVersion:3})
{
        “acknowledged” : true,
        “insertedId” : ObjectId(“64a0ad21cf8d3947804e3616”)
}
>db.MyCollections1.insertOne({plc:”Mitusbishi”,model:”IQR”,GXWORKSVersion:3})
{
        “acknowledged” : true,
        “insertedId” : ObjectId(“64a0adc0cf8d3947804e3617”)
}
>db.MyCollections1.insertOne({plc:”Keyence”,model:”KV8000″,KVStudioVersion:”11.6.G”})
{
        “acknowledged” : true,
        “insertedId” : ObjectId(“64a0ade1cf8d3947804e3618”)
}

Find

現在使用 find() 在Collections中搜索數據。

> db.MyCollections1.find()
{ “_id” : ObjectId(“64a0ad21cf8d3947804e3616”), “plc” : “Beckhoff”, “model” : “CX6920”, “TwinCATVersion” : 3 }
{ “_id” : ObjectId(“64a0adc0cf8d3947804e3617”), “plc” : “Mitusbishi”, “model” : “IQR”, “GXWORKSVersion” : 3 }
{ “_id” : ObjectId(“64a0ade1cf8d3947804e3618”), “plc” : “Keyence”, “model” : “KV8000”, “KVStudioVersion” : “11.6.G” }

Find with Conditions

您可以通過將記錄連同鍵一起傳遞給 find() 來檢索想要檢索的記錄。

在下面的示例中,plc=Beckhoff 的記錄能在Collections中檢索到的。

db.MyCollections1.find({plc:”Beckhoff”})
{ “_id” : ObjectId(“64a0ad21cf8d3947804e3616”), “plc” : “Beckhoff”, “model” : “CX6920”, “TwinCATVersion” : 3 }

Update

如果要在Collections記錄中插入新數據,請使用 Update()。

在下面的示例中,project:Myproject 對已被添加。

db.MyCollections1.updateOne({plc:”Beckhoff”},{$set:{projectname:”Myproject”}})

{ “acknowledged” : true, “matchedCount” : 1, “modifiedCount” : 1 }

Find Again

讓我們再檢查一次數據。

> db.MyCollections1.find({plc:”Beckhoff”})
{ “_id” : ObjectId(“64a0ad21cf8d3947804e3616”), “plc” : “Beckhoff”, “model” : “CX6920”, “TwinCATVersion” : 3, “projectname” : “Myproject” }

> db.MyCollections1.deleteOne({plc:”Keyence”})
{ “acknowledged” : true, “deletedCount” : 1 }

> db.MyCollections1.find()
{ “_id” : ObjectId(“64a0ad21cf8d3947804e3616”), “plc” : “Beckhoff”, “model” : “CX6920”, “TwinCATVersion” : 3, “projectname” : “Myproject” }
{ “_id” : ObjectId(“64a0adc0cf8d3947804e3617”), “plc” : “Mitusbishi”, “model” : “IQR”, “GXWORKSVersion” : 3 }

Exit

使用Ctrl+C 退出 mongodb Shell。

> ^C
bye
Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする