MongoDB 學習筆記之常用 shell 命令

lemon2018發表於2019-12-27

常用 Mongo Shell
Switch Databse
檢視當前的資料庫

db

切換資料庫

use examples

Popolate a collection(Insert)

MongoDB中的collections類似於關係型資料庫中的tables,使用 db.collection.insertMany() 命令插入新的documents到collection中,如果當前沒有collection MongoDB會新建它。

 db.inventory.insertMany([
   { item: "journal", qty: 25, status: "A", size: { h: 14, w: 21, uom: "cm" }, tags: [ "blank", "red" ] },
   { item: "notebook", qty: 50, status: "A", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank" ] },
   { item: "paper", qty: 10, status: "D", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank", "plain" ] },
   { item: "planner", qty: 0, status: "D", size: { h: 22.85, w: 30, uom: "cm" }, tags: [ "blank", "red" ] },
   { item: "postcard", qty: 45, status: "A", size: { h: 10, w: 15.25, uom: "cm" }, tags: [ "blue" ] }
]);

// MongoDB adds an _id field with an ObjectId value if the field is not present in the document

Select All Documents
從collection中搜尋documents可以使用 方法 db.collection.find()
返回所有的documents使用shell:

db.inventory.find({})

美化查詢結果使用 .pretty()

db.inventory.find({}).pretty()

Specify Equality Matches

在collection中簡單的查詢示例

status等於“D”:

 db.inventory.find({status:"D"});

qty等於0:

 db.inventory.find({qty:0});

查詢巢狀欄位中的值:

 db.inventory.find({"size.uom":"in"})

查詢巢狀的欄位下所有的值是否等於某值

 db.inventory.find( { size: { h: 14, w: 21, uom: "cm" } } )

返回欄位下陣列結構中是否包含某值

 db.inventory.find( { tags: "red" } )

返回欄位下陣列結構中是否等於某段值

  db.inventory.find( { tags: [ "red", "blank" ] } )

Specify Fields to Return(Projection)
選擇需要返回的欄位

 db.inventory.find( {}, { _id: 0, item: 1, status: 1 } );

相關文章