MongoDB 的 CRUD
Create
透過db.collection.insert(document, options)方法達成 如果 document 沒有 _id 欄位,會自動加入,型別是 ObjectId 如果 document 有 _id 欄位,內容在 Collection 裡頭必須是唯一的,否則會產生 Duplicate Key 例外
insert 單筆
db.library.insert({
_id:"4-1_1",
book:"實用英文會話",
price:299.0, authors: ["Jason", "Mary", "Bob"],
borrower:{
name:"王小明",
timestamp:ISODate("2015-07-23T12:00:00Z")
}
});
insert 多筆 library資料
db.library.insert([{
_id:"4-1_1",
book:"實用英文會話",
price:299.0, authors: ["Jason", "Mary", "Bob"],
borrower:{
name:"王小明",
timestamp:ISODate("2015-07-23T12:00:00Z")
}
},
{
_id:"4-1_2",
book:"七天學會大數據資料庫處理-NoSQL:MongoDB入門與活用",
price:360.0, authors: ["黃小嘉"],
borrower:{name:"王小明", timestamp:ISODate("2015-07-24T12:30:00Z")}
},
{
_id:"4-1_3",
book:"日本環球影城全攻略",
price:280, authors: ["Jason", "Mary", "Bob"]
}]);
insert 多筆chatroom資料
db.chatroom.insert([
{
_id:"4-2_1",
members: [ "Jason", "Bob" ],
messages: [
{ sender:"Jason", content:"Hello"},
{ sender:"Bob", content:"Hi"},
{ sender:"Jason", content:"午餐要吃什麼"},
{ sender:"Jason", content:"吃義大利麵!?"},
{ sender:"Bob", content:"走阿"}
]
},
{_id:"4-2_2", members:[ "Jason", "Mary" ], messages:[]},
{_id:"4-2_3", members:[ "Bob", "Mary" ], messages:[]}
]);
Update
db.library.update(
{book:"實用英文會話"},{$set:{book:"實用英文會話V2"}}
)
Delete
db.library.remove(
{book:"實用英文會話"}
)
Query
只能從單一一個 Collection 找出符合條件的 Document 透過 db.collection.find(query, projection) 方法達成
db.library.find({book:"實用英文會話"},{book:true, price:true})
結果顯示 Query Selector 提供類似 SQL 敘述裡面 where 子句的各種運算,方便撰寫查詢條件
db.library.find({$and:[{book:"七天學會大數據資料庫處理-NoSQL:MongoDB入門與活用"},{price:{$gt:200}}]});
結果顯示
db.library.find({"borrower.name":"王小明"});
相關運算子:$elemMatch,查詢某個陣列的內部元素符合條件式。
db.chatroom.find({messages:{$elemMatch:{content:"Hello"}}})
結果顯示
$in:查詢某個陣列存在著某個值
{ field: { $in: [
db.library.find({authors:{$in:["Jason","Mary"]}});