MongoDB基礎教程系列--第三篇 MongoDB基本操作(二)
1、集合操作
1.1、建立集合
MongoDB 用 db.createCollection(name, options) 方法建立集合。
格式
1 |
|
其中,name 是集合名稱,是一個字串;options 是可選項,是一個文件,指定記憶體大小和索引等選項,具體引數說明如下表:
欄位 | 型別 | 說明 |
---|---|---|
capped | 布林 | (可選)如果為 true,表示為固定集合。固定集合是指具有固定儲存空間的集合。 當該值為 true 時,必須指定 size 引數。 |
autoIndexID | 布林 | (可選)如果為 true,在 _id 欄位自動建立索引。預設為 false。 |
size | 數值 | (可選)為固定集合指定一個最大值(以位元組計)。 如果 capped 為 true,也需要指定該欄位。 |
max | 數值 | (可選)為固定集合指定文件的最大數量。 |
注:1.如果 collection 達到最大儲存限制(size)之前達到最大文件數量(max)會刪除舊文件。
2.MongoDB 會先檢查size值,然後再檢查max值
範例
建立一個集合"user",為欄位_id建立索引,最大儲存空間是10M,最大文件數量為1000
1 2 3 |
|
說明
在 MongoDB 中,可以不用createCollection()方法建立集合,是因為在插入文件的時候,會自動建立集合
1 2 3 4 5 6 |
"name" : "liruihuan" })
|
其中,show collections 表示顯示當前操作資料庫內的所有集合。
1.2、刪除集合
MongoDB 用 db.collection.drop() 刪除集合
格式
1 |
|
如果刪除成功返回true,否則,返回false
範例
刪除剛才建立的myCollection集合,並顯示刪除後的集合列表,驗證是否刪除成功
1 2 3 4 5 |
|
2、文件操作
2.1、插入文件
MongoDB 用 insert()或者save()向集合中插入文件
格式
1 |
|
範例
我們向集合"user"中插入{"name":"user1","age":19}文件,插入之前先查詢集合"user"中存在的文件,然後再查詢插入以後的所有文件,以便確定是否插入成功
1 2 3 4 5 6 7 8 9 10 |
|
文件查詢用 find() 方法,下一篇會具體講解。
插入文件也可以使用 db.collection.save(document) 命令。如果不指定 _id 欄位 save() 方法類似於 insert() 方法。如果指定 _id 欄位,則會更新該 _id 的資料。save() 方法會在下面 更新文件 裡面用範例說明。
2.2、更新文件
MongoDB 用 update() 或者 save() 更新集合中的文件
2.2.1、update()
update() 更新已經存在文件的值
格式
1 |
|
範例
在集合"user"中,將文件原來的name值"user1"更新為"user2",更新之前先查詢集合"user"中存在的文件,然後再查詢更新以後的所有文件,以便確定是否更新成功
1 2 3 4 5 6 7 8 9 10 |
|
上面範例只會更新第一條發現的文件,若想更新全部發現的文件,則需要用 multi:true ,具體寫法如下
1 |
|
上文中用到了更新操作符$set,諸如此類的還有:$inc、$unset、$push、$ne等。感興趣的夥伴們可以到網上查查具體的含義。
2.2.2、save()
save() 方法通過傳入的文件來替換已有文件。
格式
1 |
|
範例
用 _id = '58e1d2f0bb1bbc3245fa754b' 的文件替換原來的文件,更新之前先查詢集合"user"中存在的文件,然後再查詢更新以後的所有文件,以便確定是否更新成功
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2.3、刪除文件
MongoDB 用 remove() 刪除集合中的文件
格式
1 |
|
justOne 如果設為 true 或 1,則只刪除一個文件。
範例
刪除 name 為 'user1' 的文件,刪除之前先查詢集合"user"中存在的文件,然後再查詢刪除以後的所有文件,以便確定是否刪除成功
1 2 3 4 5 6 7 8 9 |
|
如果只想刪除一條記錄,則需要設定 justOne 為 1,如下所示:
1 |
|
如果想刪除所有記錄,可以這樣寫
1 |
|