如何在嵌入式数组mongodb中查询嵌入式文档

杰麦尔

我从mongodb和mongoose开始。这是我的数据库的样子

[
 {
  _id: "5fd0f98751e33831d8ef4899"
  date: "01/01/2020, 11:47:00 AM"
  groups: [
     {
       _id: "5fd0f98751e33831d8ef489a"
       name: "Eyob"
       profession: "doctor"
       posts: [
           { 
              _id: "5fd0f98751e33831d8ef489b"
              numberOfLikes: 16
              numberOfShares: "2 Shares"
           },
           { 
              _id: "5fd0f98751e33831d8ef489c"
              numberOfLikes: 26
              numberOfShares: "7 Shares"
           }
        
         ]
      },
      {
       _id: "5fd0f98751e33831d8ef489d"
       name: "Abel"
       profession: "teacher"
       posts: [
           { 
              _id: "5fd0f98751e33831d8ef489e"
              numberOfLikes: 16
              numberOfShares: "2 Shares"
           },
           { 
              _id: "5fd0f98751e33831d8ef489f"
              numberOfLikes: 26
              numberOfShares: "7 Shares"
           }    
         ]
      }

    ]

  },

  {
   _id: "5fd0f98751e33831d8ef489d"
   date: "01/02/2020, 11:47:00 AM"
   groups: [// an array of groups as the above one //]
  }
]

因此,对于每个groups数组,都有一个group对象,其中包含一个posts数组,其中包含一个post对象。(“这可能会令人困惑”)。我想要做的是使用唯一的ID查询单个帖子以及单个群组。findById()返回null。有没有一种方法可以使用相应的ID来查询此对象。

TradeCoder

试试这个,它应该可以解决您的问题。

(发送一个帖子_id以获取您的期望数据)

const {id}=req.params;
YourDataModel.findOne({"groups.posts._id":id}, {"groups.posts._id.$":true})
.then(data=>data?res.send({
                     groupId:data.groups[0]._id, 
                     groupName:data.groups[0].name, 
                     post:data.groups[0].posts.filter(e=>e._id===id)[0]
            }): res.send("Not found!"))
.catch(err=>res.send(err))

您还可以使用相同的代码获取该组的所有帖子(与该帖子相关),只需res.send(data)在必要时进行或进行必要的修改即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 MongoDb 中查询嵌入式文档?

查询MongoDB中的嵌入式文档

如何在MongoDB中查询数组中的单个嵌入式文档?

基于范围查询MongoDB中嵌入式文档的数组

查询Spring Data MongoDB中嵌入式文档的数组

如何查询Mongodb的嵌入式数组

如何在mongodb中搜索嵌入式文档?

在文档中引用文档的嵌入式数组的嵌入式数组上查询Doctrine2和MongoDB

春季查询嵌入式文档的数组

使用Presto查询MongoDB嵌入式/嵌套文档的数组

与数组比较,如何在mongodb中检索部分嵌入式文档?

在mongodb中展开嵌入式文档

在 MongoDB 中搜索嵌入式文档?

如何在MongoDB的数组字段中查询和删除嵌入式对象?

嵌入式文档数组中的MongoDB Aggregate ObjectId

如何在嵌入式文档中查找某个元素

如何在Meteor中循环浏览嵌入式文档

在mongoDb中对嵌入式文档数组(3个级别)进行过滤查询

php:将mongodb嵌入式文档查询到数组中

如何在MongoDB中使用数组获取嵌入式文档(使用Mongoose)

如何使用Mongoose将值推入MongoDB中嵌入式文档中的数组?

如何使用id mongodb在嵌入式文档数组中查找数据?

如何在嵌入式文档中查询$ regex以计算不同的值

如何在 rails only 查询中包含嵌入式文档

如何在Rails和Mongoid中查询嵌入式文档

如何在mongoDB中的嵌入式文档中提取特定元素

如何在mongoDB中的多对多关系中使用嵌入式文档结构?

如何在数组中的嵌入式文档中指定/投影字段?

MongoDB嵌入式文档自我查询