gpt4 book ai didi

MongoDB - 如何合并文档的字典字段?

转载 作者:行者123 更新时间:2023-12-02 02:39:37 28 4
gpt4 key购买 nike

例如,我有一个如下所示的集合:

[{
"_id": xxxx,
"data": {
"1": 10,
"2": 30,
}
},
{
"_id": yyyy,
"data": {
"2": 10,
"3": 30,
}
}]

我想按键求和 data :

{
"1": 10,
"2": 40,
"3": 30,
}

我该怎么做?

最佳答案

您可以尝试以下查询:

db.collection.aggregate([
/** Convert data object into array of objects [{k:...,v:...}] */
{
$project: {
data: {
$objectToArray: "$data"
}
}
},
/** Unwind data array */
{
$unwind: "$data"
},
/** group on 'k' field of data field in each doc & sum values & push to 'v' field */
{
$group: {
_id: "$data.k",
v: {
$sum: "$data.v"
}
}
},
/** Transform _id object as 'k' & v to 'v' of an object of array ([{k:...,v:...}]) &
* make an object of field named data */
{
$project: {
_id: 0,
data: {
$arrayToObject: [
[
{
k: "$_id",
v: "$v"
}
]
]
}
}
},
/** make data as new root to each doc */
{
$replaceRoot: {
newRoot: "$data"
}
}
])

测试: MongoDB-Playground

关于MongoDB - 如何合并文档的字典字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60647200/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com