MongoDB 根据key:value 将单个对象转换为对象数组
MongoDB Convert sigle object to array of object based on key:value
有没有办法通过使用 mongodb 查询,将单个对象字段转换为基于 key:value 的对象数组?
之前
"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"
}
]
您可以在聚合管道中使用 $objectToArray
:
db.collection.aggregate([
{
"$set": {
"fields": {
"$objectToArray": "$fields"
}
}
}
])
示例here
有没有办法通过使用 mongodb 查询,将单个对象字段转换为基于 key:value 的对象数组?
之前
"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"
}
]
您可以在聚合管道中使用 $objectToArray
:
db.collection.aggregate([
{
"$set": {
"fields": {
"$objectToArray": "$fields"
}
}
}
])
示例here