http://www.mongodb.org/display/DOCS/findAndModify+CommandfindAndModify CommandfindAndModify的調用方式和普通的更新略有不同,還有點慢,這是因為它要等待數據庫的響應。這對于操作查詢以及執行其他需要取值和賦值風格的原子性操作來說是十分方便的。
findAndModify命令中每個鍵對應的值如下所示。
findAndModify 字符竄,集合名。
query 查詢文檔,用來檢索文檔的條件。
sort 排序結果的條件。
update 修改器文檔,對所找到的文檔執行的更新。
remove 布爾類型,表示是否刪除文檔。
new 布爾類型,表示返回的是更新前的文檔還是更新后的文檔。默認是更新前的文檔。
"update"和"remove"必須有一個,也只能有一個。要是匹配不到文檔,這個命令會返回一個錯誤。
這個命令有些限制。它一次只能處理一個文檔,也不能執行upsert操作,只能更新已有文檔。
相比普通更新來說,findAndModify速度要慢一些。大概耗時相當于一次查找,一次更新和一次getLastError順序執行所需的時間。
db.runCommand("findAndModify":集合名,"query":{查詢條件},"upadte":{修改器})