|
based on v8 コレクションからのオブジェクトの削除コレクションからオブジェクトを削除するためには、 Mongoシェル で remove() ファンクションを使います。(他のドライバでも似たようなファクションがありますが、"delete"と呼ばれていることもあります。使用している driver's documentation を参照してください。) remove() は find() のように、削除するオブジェクトを指定するために、JSON-style のクエリドキュメントを引数として取ります。 remove() を引数なし、または空のドキュメント引数 {} で実行すると、コレクション内のすべてのドキュメントを削除します。いくつかの例を見てみましょう。 db.things.remove({}); // すべて削除
db.things.remove({n:1}); // n==1をすべて削除
メモリ内にドキュメントがあってそれを削除する場合、一番効率的な方法は _id を条件として指定することです。 db.things.remove({_id: myobject._id});
単純に、削除したいドキュメントそのものをselectorとして渡したいと考えるかもしれません。これは動作はしますが、非効率です。
並列性とリムーブv1.3以上では、リムーブ処理が走っている間に、並列で別の処理の実行をサポートしています。アップデートとリムーブが(同じコレクション内で)同時に起こった場合、アップデートされたオブジェクトは削除されないことがあります(ほぼ同時に起こった場合これはさほど驚くことではないです)。このことを望まない場合、filter表現に、 {$atomic : true} を指定してください。 db.videos.remove( { rating : { $lt : 3.0 }, $atomic : true } )
このリムーブ操作は、完全にatomicです。しかし、この処理が実行中、他の処理はブロックされます。 |

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.
These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group. blog comments powered by Disqus