mongodbのdeleteManyメソッドの使い方…$inを用いる。

javascript徒然草2.0
javascript,js

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

コメント

タイトルとURLをコピーしました