2012-07-23 12 views

答えて

10

可能ですが、別のコマンドが必要です。あなたはfindAndModify commandを探しています。

オプションを{query: ..., remove: true, new: false}に設定すると、1つのドキュメントを削除し、削除したドキュメントを返します。

いくつかの注意

  • newが正しくフラグのテキストをラップしていることを確認し、多くの言語でキーワードです。
  • findAndModifyは、単一のドキュメントでのみ動作します。 _idを削除しても問題ありませんが、遠隔削除には適していません。
+1

'remove:true'は' new'パラメータを無視しますか? [node-mongodb-native docs](https://github.com/mongodb/node-mongodb-native#find-and-modify)と[ここ](http://docs.mongodb.org/)にあります。 manual/reference/command/findAndModify /) – balazs

+0

これは無視される可能性があります。これらのドキュメントは、この回答が書かれてから約12ヶ月後に書かれました:)それは返された値がいずれの場合も同じであるため、おそらく正しいでしょう。 –

+0

削除後に条件に合致する文書の範囲を返却するにはどうすればよいですか? – thethakuri

2
db.collection('mycollection').findOneAndDelete({ 
    id: '123456' 
}, function (error, response) { 
    response.value;// returns the deleted object, but no longer exists in the database 
}); 
+4

このコードスニペットは問題を解決するかもしれませんが[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-回答)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えていて、コード提案の理由を知らない人もいるかもしれません。あなたのコードに説明的なコメントを詰め込まないようにしてください。これは、コードと説明の両方の可読性を低下させます! – kayess

関連する問題