首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数组中ID的猫鼬查找文档

基于数组中ID的猫鼬查找文档
EN

Stack Overflow用户
提问于 2020-09-27 15:17:41
回答 1查看 26关注 0票数 0

我有一系列这样的mongoIDs

代码语言:javascript
复制
arrayOfIDs = ['mongoID1','mongoID2','mongoID3']

这些是我收藏的文件的蒙戈in。

现在,通过获取这些mongoID的数组--即‘mongoID 1’、‘mongoID 2’、‘mongoID 3’,我需要查询这些in指定的每个文档,使用它的_id并在我的代码逻辑中独立地处理其数据。作为简单性的例子,我刚刚“打印”了输出,即res.json(doc.name)。

如果蒙鹅/MongoDB中确实存在这样的东西,我需要这样的东西。

代码语言:javascript
复制
Shop.find({'_id':['mongoID1','mongoID2','mongoID3']})
    .exec()
    .then(doc =>{
       res.json(doc.name)
    })

我知道我可以用循环来处理这个案子,像这样,

代码语言:javascript
复制
for(id of arrayOfIDs){
    Shop.find({'_id': id})
        .exec()
        .then(doc =>{
           res.json(doc.name)
        })
}

但这涉及根据arrayOfID的长度多次查询数据库,这是我不想要的。我希望有一个本地mongodb解决方案,它只传递mongodb查询中的Ids,如上面的示例所示。

你能告诉我如何做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 15:45:44

您可以使用$in操作符。

代码语言:javascript
复制
{ _id: { $in: ["mongoID1", "mongoID2", "mongoID3"] } }

如果_id的类型是ObjectId,则需要在传递它之前将它们转换为ObjectId

代码语言:javascript
复制
{
  _id: {
    $in: [
      mongoose.Types.ObjectId("mongoID1"),
      mongoose.Types.ObjectId("mongoID2"),
      mongoose.Types.ObjectId("mongoID3"),
    ],
  },
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64090046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档