【问题标题】:How to query sub documents in mongodb?如何在mongodb中查询子文档?
【发布时间】:2020-07-21 01:35:03
【问题描述】:

如何在mongodb中查询子文档,我想获取所有书名等于汽车的子文档

下面是我要查询的文档

[
  {
      "_id": "5e7148313ecba10bdc04d0b3",
      "name": "crystal",
      "author": "barbra",
      "titles": [
          {
              "_id": "5e7bbc9898959e1c1c694d12",
              "book": "cars",
          },
          {
              "_id": "5e86bcbef5ef401554058e48",
              "book": "buses",
             },
          {
              "_id": "5e8a5107ea148f1c588534e5",
              "book": "cars",
          }
      ]
  }
]

这是我在下面尝试获取子文档的查询,它不起作用

.aggregate([
  { $match: { "name": 'crystal', } },
  {
    $project: {
      "titles": 1, _id: 0, 
      "titles": { $match: { "$book": 'cars', } }
    }
  },
])

【问题讨论】:

标签: node.js mongodb mongoose mongodb-query


【解决方案1】:
.aggregate([
  { 
    $match: { 
      "name": 'crystal',  
      titles: { $elemMatch: { "book": "cars"} }
   }
  },
  {
    $project: {
       _id: 0,
      titles: 1
    }
  }
])

使用$elemMatch 运算符在对象数组中搜索并删除您添加到book 的$ 符号。这应该适合你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2021-04-04
    相关资源
    最近更新 更多