一尘不染

mongodb / mongoose findMany-查找ID在数组中列出的所有文档

node.js

我有一个_ids数组,我想相应地获取所有文档,最好的方法是什么?

就像是 …

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

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

该数组可能包含数百个_id。


阅读 297

收藏
2020-07-07

共1个答案

一尘不染

findmongoose中的函数是对mongoDB的完整查询。这意味着您可以使用方便的mongoDB $in子句,该子句的工作方式与SQL版本相同。

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

高级查询”部分。

2020-07-07