- var xx = db.collection.find({query})
- xx.newkey="new value"
- delete xx.key1
- db.collection.update({query},xx)
操作說明:通過查詢獲取某個文檔,給該文檔設置新的key/value對,刪除舊的key=》key1,然後通過update操作更新該文檔
2. 刪除文檔
db.collection.remove({query})
3. 插入文檔
db.collection.insert({})
4. 修改器$set和$unset
$unset可以刪除鍵,$set可以創建鍵(該鍵不存在),$set可以修改鍵的類型(通過update)
5. 數組修改器
push,pop,pull,ne,each,addtoset
ne+push可以實現類似addtoset的功能
addtoset+echo可以實現一次插入多個值
pop可以實現從數組頭或者尾刪除單個元素({$pop:{key:1}從數組尾刪除,{$pop:{key:-1}從數組頭刪除)
pull可以實現按某種查詢條件刪除($pull:{query})
6. 數組定位修改器
數組元素可以通過下標來訪問,下標從0開始
例如:
{key:{[{x1:1},{x1:2},{x1:3}]} 則 key.0.x1=1
另可以通過定位操作符“$”來查詢匹配的文檔
db.xx.update({key.x1:1},{$set:{key.$.x1:10}}),若查詢條件有多個匹配,則僅改變第一個匹配結果
7. getLastError()和findAnyModified()
8 . 每個客戶端連接都有獨立的隊列,打開兩個shell,就會建立2個獨立的連接,在其中一個插入的文檔並不一定馬上會在另個一shell中展現
9. not和mod ,exists
mod[num1,num2]:查詢條件值除以num1後值爲num2
10. size和slice
size返回數組長度,slice返回片段。slice的參數可以爲正/負/數組
11. limit/skip/sort
12. elemMatch
查詢條件匹配單個嵌套文檔,而不是多個文檔的組合匹配。