新增或插入操作將新文檔添加到collection之中。如果collection當前不存在,則會插入操作將新增collection。
新增一個新文檔
nInserted: 新增多少筆文檔
WriteResult({ "nInserted" : 1 })
新增多個文檔
回傳一個BulkWriteResult物件
新增一個新文檔
回傳一個BulkWriteResult物件
新增多筆文檔
回傳一個BulkWriteResult物件
空查詢過濾器文檔({})選擇collection中的所有文檔。
db.collection.find({})
將查詢過濾器文檔省略到db.collection.find()等同於指定空查詢文檔。
db.collection.find()
查詢單一個符合條件的第一個文檔,並且會以pretty()的方法呈現。
db.collection.findOne()
MongoDB提供db.collection.find()方法來從collection中讀取文檔。該方法將游標返回到匹配的文檔。
db.collection.find(<query filter>, <projection>)
<query filter>:查詢過濾器,用於指定要返回的文檔。
<projection>:一個查詢投影,用於指定要返回的匹配文檔中的哪個字段。
指定相等條件
{ <field1> : <value1>, ... }
範例:
db.employees.find( { name : "SMITH" } )
{ <field1> : { <operator1> : <value1> , ... }
範例:
db.emplyees.find( { name : { $in : [ "SMITH" , "ALLEN" ] } } )
db.employees.find( { empno : 7499 , name : "ALLEN" } )
db.employees.find( { $or : [ { deptno : 30 } , { sal : { $lt : 1000 } } ] } )
db.employees.find( { deptno : 30 , $or : [ { deptno : 30 } , { sal : { $lt : 1000 } } ] } )
投影文檔限制所有匹配文檔的返回字段,他可以指定字段的包含/排除。
{ field1 : <value>, field2 : <value> ... }
<value>可以是以下任何一種:
平等過濾器
db.emplyees.find( { name : "SMITH" , sex : null } )
類型檢查(BSON Type)
db.emplyees.find( { name : "SMITH" , sex : { $type : 10 } } )
存在檢查
db.emplyees.find( { sex : { $exists : false } } )
手動迭代游標
與forEach()相同
var mCur = db.emplyees.find( { deptno : 30 } )
mCur.forEach( printjson );
迭代索引:toArray()迭代方法並以陣列形式傳回文檔
var mCUR = db.employees.find( { deptno : 30 } );
var docAry = mCur.toArray();
var mDoc = docAry[3];
printjson( mDoc )
db.collection.update()
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
如果字段不存在,某些更新運算符(如$set)將新增該字段。
db.collection.update()
更新單個紀錄(比如:db.collection.updateOne()
)
更新多個紀錄(比如:db.collection.updateMany()
)
db.collection.replaceOne()
將與過濾器名稱匹配的第一個文檔替換為與新文檔相同的”SMITH”:
db.collection.update()
db.collection.remove()
db.collection.deleteOne()
db.collection.deleteMany()
要從collection中刪除所有文檔,請將空過濾器文檔{}傳遞給db.collection.remove()
或db.collection.deleteMany()
。
但如果要從collection中刪除所有文檔,使用db.collection.drop()
方法刪除整個collection(包括索引)會更有效。
刪除指定過濾器匹配的單個文檔,即使匹配到多個文檔
刪除所有指定過濾器匹配的文檔
串列操作:如果發生錯誤,將回傳而不處理任何剩餘的操作。
{ordered:true}
並行操作:但行為無法保證,如果發生錯誤,將繼續處理剩餘程序。
{ordered:false}