首页 > 解决方案 > 在 MongoDB 中获取文档的一部分

问题描述

假设我在某个集合中有以下文档

{
        "name": "Man1",            
        "Childrens": [
             {
                 "name": "Children 1",
                 "age": "12"
             },
             {
                 "name": "Children 2",
                 "age": "18"
             },
         ]
    }

如何以 ieget child 的形式获取查询的输出,其中孩子的年龄为 18

{
      "name": "Children 2",
      "age": "18"
}

标签: mongodb

解决方案


您需要用于$elemMatch查找文档和$elemMatch数据投影

db.collection.find({
  Childrens: {
    $elemMatch: {
      age: "18"
    }
  }
},
{
  Childrens: {
    $elemMatch: {
      age: "18"
    }
  },
  _id: 0
})

输出 -->这里

[
  {
    "Childrens": [
      {
        "age": "18",
        "name": "Children 2"
      }
    ]
  }
]

推荐阅读