mongo DB 內多個 DB 之下的階層稱為 Collections,由多個 Collection 組成,而每個 collection 其實就等同於關聯式資料庫的一張資料表( table )的意思; 而每個 collection 下面都可新增並且存放許多的 Documents 進行資料運用; 這樣的 Documents 是什麼呢? 其實就是 Objects 的意思,每一個 Document 其實就是新增進去該 Collection 的一個 Object ,這也就是 Mongo DB 作為物件類型資料庫, 以物件形式存放資料的核心所在。
// 在當前 db 的該 collection 新增一個 物件
db.collection名稱.insertOne({ Object內容 });
// 在當前 db 的該 collection 新增多個 物件
db.collection名稱.insertMany([{ Object1內容 },
{ Object2內容 },
{ Object3內容 }]);
// 綜合,單複數皆可用,用法同上
db.collection名稱.insert(...Object);
// 1. 找到該collection (inventory) 所有內容
// find 沒加任何參數的話會返回該 collection 所有內容,其中 invenotry 等同 collection
// 這句跟 SQL SELECT * FROM inventory(table) 意思相同
db.inventory.find()
// 2.fliter document(Object)
// {} 內為篩選的屬性條件,會返回符合的 object 集合
db.inventory.find({ property: "value" })
※ 另外,針對巢狀物件進階查找的介紹寫在後面
// 更新某個 document 物件;第一個參數是篩選條件(JSON形式), 第二個參數是欲改的屬性跟值(JSON形式)
db.collection.updateOne({篩選屬性: 篩選值},
{$set: {欲改屬性: 欲改值}, $currentDate: {lastModified: true}})
// 每個符合條件的物件都會更新( updateOne只會更新符合條件的第一個 )
db.collection.updateMany({篩選屬性: 篩選值},
{$set: {欲改屬性: 欲改值}, $currentDate: {lastModified: true}})
// $currentDate 屬性為修改時間,不一定要加入
// 刪除符合該篩選條件的 第一個 document
db.collection.updateOne({篩選屬性: 篩選值})
// 刪除符合該篩選條件的 所有的 documents
db.collection.updateMany({篩選屬性: 篩選值})
需要進行一些較為複雜的巢狀查找時:
// 巢狀查找
// 找到該巢狀結構 body 中的 age 為 20 的學生
db.students.find({ "body.age": 20 })
需要利用比較運算子時: DOC
// 以 $gt (greater)為例,找年紀比 20 大的學生
db.students.find({ "body.age": {$gt: 20} })
用 $in 找到有該指定屬性的物件: