当前位置: 首页 > 面试题库 >

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

鲍理
2023-03-14
问题内容

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

就像是 …

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

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

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


问题答案:

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

高级查询”部分。



 类似资料:
  • 你好,我有一个mongodb find()问题查询。我试图找到在同一个对象数组中有两个特定ID的所有文档。 示例文档结构: 如果我能帮你解决这两个问题中的任何一个,那就太好了!谢了。

  • 所以我正在用NestJs和mongodb进行一个项目。早些时候,我们使用express和mongoose,为了在数组列中查找结果,我们使用了如下方法: 现在,当我们使用TypeORM迁移到新的Nest后端时,我们使用的是: 但这不起作用。奇怪的是,除此之外,我们在mongoose中使用的所有查询都能正常工作。我试着用NestJS处理mongoose,这确实有效,所以函数参数或任何东西都没有问题。

  • 我有一系列这样的Mongoid 这些是我收藏的文件的mongo-id。 现在,通过获取这些mongoIDs的数组,即['mongoID1','mongoID2','mongoID3'],我需要通过使用其_id来查询这些id指定的每个文档,并在我的代码逻辑中独立处理其数据。为了简单起见,我刚刚“打印”了输出ieres.json(doc.name)。 如果Mongoose/MongoDB中确实存在这样

  • 给定包含以下文档的集合: 我需要返回ip值为X的所有文档,但前提是X的关联时间戳是ips数组中的最高时间戳(因此,上面的示例文档不应与搜索“222222222”匹配,因为这不是具有最新时间戳的ip)。 这是我第一次在MongoDB中做任何超出相当基本的东西,所以我能得到的最接近的是: 科尔。聚合({$匹配:{“ips.ip”:X}}},{$组:{“\u id”:“$主机”,“max”:{$max:

  • 我是新来的mongo。我有以下收藏。 文件: 请求: 文档集合中的typeId是文档类型的id,其中请求中的typeId是也可以为空的外部字段。如何获得以下输出。

  • 问题内容: 我试图在以下位置找到针对此问题的解决方案:http : //mongodb.github.io/node-mongodb-native/ 但是,我找不到从Node.js应用程序列出所有可用的MongoDB数据库的解决方案。 问题答案: 使用。