2012-12-13 30 views

回答

2

MongoDB的操作返回full documents找到這些信息。

選項可能是:

  • 使用findAndModify命令和處理返回的文檔獲取數組程序側的彈出值。 (1查詢)
  • 使用find獲取文檔,獲取想要在程序端彈出的值,併發送update。 (2 queries)
+0

這正是我想要的。謝謝 –

+0

+1;不幸的是,這只是一個方法調用不可能的: -/ – Tilo

+0

第二個不是原子的,因此如果我是正確的 – Musa

3

這是不可能的。 MongoDB不會返回以前使用正常更新的文檔的任何部分,也就是說它可以返回完整文檔,而不僅僅是findAndModifyhttp://docs.mongodb.org/manual/reference/command/findAndModify/)上的彈出元素,然後您可以將該元素過濾出來,無論是第一個還是第最後。

注意:我應該警告findAndModify基本上就像挑出查詢中的每個文檔並對其進行操作,這就是它能夠返回它的方式,因此您可能會看到跨越大量查詢的一些性能損失。