我有一个_ids数组,我想相应地获取所有文档,最好的方法是什么?
就像是 …
// doesn't work ... of course ... model.find({ '_id' : [ '4ed3ede8844f0f351100000c', '4ed3f117a844e0471100000d', '4ed3f18132f50c491100000e' ] }, function(err, docs){ console.log(docs); });
该数组可能包含数百个_id。
findmongoose中的函数是对mongoDB的完整查询。这意味着您可以使用方便的mongoDB $in子句,该子句的工作方式与SQL版本相同。
find
$in
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 “ 高级查询”部分。
mongoDB