_id の配列があり、それに応じてすべてのドキュメントを取得したいのですが、最適な方法は何でしょうか?
何かのようなもの ...
// doesn't work ... of course ...
model.find({
'_id' : [
'4ed3ede8844f0f351100000c',
'4ed3f117a844e0471100000d',
'4ed3f18132f50c491100000e'
]
}, function(err, docs){
console.log(docs);
});
配列には数百の _id が含まれる場合があります。
ベストアンサー1
mongoose の関数find
は、mongoDB への完全なクエリです。つまり、$in
SQL バージョンと同じように機能する便利な mongoDB 句を使用できるということです。
model.find({
'_id': { $in: [
mongoose.Types.ObjectId('4ed3ede8844f0f351100000c'),
mongoose.Types.ObjectId('4ed3f117a844e0471100000d'),
mongoose.Types.ObjectId('4ed3f18132f50c491100000e')
]}
}, function(err, docs){
console.log(docs);
});
この方法は、数万のIDを含む配列でもうまく機能します。(レコードの所有者を効率的に特定する)
mongoDB
仕事をしている人は誰でも、高度なクエリ優れたセクション公式mongoDBドキュメント