首页 > 解决方案 > MongoDB 基于键:值将单个对象转换为对象数组

问题描述

有没有办法通过使用 mongodb 查询,将单个对象字段转换为对象数组但基于键:值?

"fields" : {
    "field1" : 1,
    "field2" : true, 
    "field3" : false, 
    "field4" : "any string value"
}

"fields" : [
    {
        "name" : "field1",
        "value": 1
    }, 
    {
        "name" : "field2", 
        "value" : true
    }, 
    {
        "name" : "field3",
        "value" : false
    }, 
    {
        "name" : "field4",
        "value" : "any string value" 
    }
]

标签: mongodbmongodb-querynosqlaggregation-framework

解决方案


您可以$objectToArray在聚合管道中使用:

db.collection.aggregate([
  {
    "$set": {
      "fields": {
        "$objectToArray": "$fields"
      }
    }
  }
])

这里的例子


推荐阅读