mongodbのdeleteManyメソッドですが、、
db.posts.deleteMany([
{"_id": ObjectId("5f39daf352e83abfc05ae5ac")}
,{"_id": ObjectId("5f39daf352e83abfc05ae5ab")}
])
このように連続して書くことはできないようで…
$inという演算子を使って、、、
db.posts.deleteMany({
"_id": { $in : [ObjectId("5f39daf352e83abfc05ae5aa"),ObjectId("5f39daf352e83abfc05ae5ab")] }
})
…と記述する。nodeの場合は、、
// mongoDB接続部分は割愛
let ary = [];
ary.push( require('mongodb').ObjectID('5f39e59be7b8e04a69a8b8a9') );
ary.push( require('mongodb').ObjectID('5f39e59be7b8e04a69a8b8aa') );
DB.collection('posts').deleteMany(
{'_id' : {$in : ary} },
(err, result) => {
console.log("delete");
}
);
このように指定する。
なお、正規表現を使い前方一致で消す場合は$inを使わずに、
{‘name’ : /^山田/} という文字列などを第一引数に設定することができる。
※基本的にdeleteOnecメソッドにしてもフィルタ的な条件を与えることで操作するようmongoDBが作られているっぽいと感じた。


コメント