我有一系列这样的mongoIDs
arrayOfIDs = ['mongoID1','mongoID2','mongoID3']这些是我收藏的文件的蒙戈in。
现在,通过获取这些mongoID的数组--即‘mongoID 1’、‘mongoID 2’、‘mongoID 3’,我需要查询这些in指定的每个文档,使用它的_id并在我的代码逻辑中独立地处理其数据。作为简单性的例子,我刚刚“打印”了输出,即res.json(doc.name)。
如果蒙鹅/MongoDB中确实存在这样的东西,我需要这样的东西。
Shop.find({'_id':['mongoID1','mongoID2','mongoID3']})
.exec()
.then(doc =>{
res.json(doc.name)
})我知道我可以用循环来处理这个案子,像这样,
for(id of arrayOfIDs){
Shop.find({'_id': id})
.exec()
.then(doc =>{
res.json(doc.name)
})
}但这涉及根据arrayOfID的长度多次查询数据库,这是我不想要的。我希望有一个本地mongodb解决方案,它只传递mongodb查询中的Ids,如上面的示例所示。
你能告诉我如何做到这一点吗?
发布于 2020-09-27 15:45:44
您可以使用$in操作符。
{ _id: { $in: ["mongoID1", "mongoID2", "mongoID3"] } }如果_id的类型是ObjectId,则需要在传递它之前将它们转换为ObjectId。
{
_id: {
$in: [
mongoose.Types.ObjectId("mongoID1"),
mongoose.Types.ObjectId("mongoID2"),
mongoose.Types.ObjectId("mongoID3"),
],
},
}https://stackoverflow.com/questions/64090046
复制相似问题