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が作られているっぽいと感じた。
コメント