首页 > 解决方案 > MongoDB查询:如何获取父节点是动态的嵌套字段的所有值?

问题描述

这是我们在 MongoDB 中收集的文档之一的示例。我需要使用 MongoDB 查询从该集合中的所有文档中获取NUMBER字段的所有值。那个查询可能是什么?

{
"_id" : "5w1669ba-3f8a-4695-a585-9fa510d13e59",
"display_title" : "SWE Test Series!",
"production_year" : "2020",
"type" : "series",
"created_timestamp" : 1597940264,
"seasons" : {
    "8c399fbc-dc65-4c2e-b86c-5c6289835b45" : {
        "number" : "1",
        "uuid" : "8c399fbc-dc65-4c2e-b86c-5c6289835b45",
        "created_timestamp" : 1597940441
    }
}

}

标签: mongodb

解决方案


你可以这样做。

objectToArray让它变得容易。

db.collection.aggregate([
  {
    "$project": {
      "a": {
        "$objectToArray": "$seasons"
      }
    }
  },
  {
    "$unwind": "$a"
  },
  {
    $project: {
      "a.v.number": 1
    }
  }
])

推荐阅读