mongodb/mongoose findMany - 配列にリストされているIDを持つすべてのドキュメントを検索する 質問する

mongodb/mongoose findMany - 配列にリストされているIDを持つすべてのドキュメントを検索する 質問する

_id の配列があり、それに応じてすべてのドキュメントを取得したいのですが、最適な方法は何でしょうか?

何かのようなもの ...

// doesn't work ... of course ...

model.find({
    '_id' : [
        '4ed3ede8844f0f351100000c',
        '4ed3f117a844e0471100000d', 
        '4ed3f18132f50c491100000e'
    ]
}, function(err, docs){
    console.log(docs);
});

配列には数百の _id が含まれる場合があります。

ベストアンサー1

mongoose の関数findは、mongoDB への完全なクエリです。つまり、$inSQL バージョンと同じように機能する便利な 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ドキュメント

おすすめ記事