[英]How value become value as an key in MonogoDB array?
说明:我想将值转换为键的一部分,在文档 1 中将"xyz"
替换为v
,在文档 2 中将"abc"
替换为v
。 注意:有多个文档,我不知道文档 3“sig_nam”的值是什么。
1号文件
"sig_nam": "xyz",
"cont_name": "1",
"t_v": [
{
"t": "2020-11-20T03:00",
"v": 0
},
{
"t": "2020-10-25T03:00",
"v": 0
}
]
}
2号文件
{
"sig_nam": "abc",
"cont_name": "1",
"t_v": [
{
"t": "2020-11-20T03:00",
"v": 0
},
{
"t": "2020-10-25T03:00",
"v": 0
}
]
}
预计 Output 文档号 1
"sig_nam": "xyz",
"cont_name": "1",
"t_v": [
{
"t": "2020-11-20T03:00",
"xyz": 0
},
{
"t": "2020-10-25T03:00",
"xyz": 0
}
]
}
预计 Output 文档号 2
{
"sig_nam": "abc",
"cont_name": "1",
"t_v": [
{
"t": "2020-11-20T03:00",
"abc": 0
},
{
"t": "2020-10-25T03:00",
"abc": 0
}
]
}
$map
迭代t_v
数组的循环$arrayToObject
,设置k
为sig_nam
和v
为 count 和相同的t
,包装到一个数组括号,它将转换为 objectdb.collection.aggregate([
{
$addFields: {
t_v: {
$map: {
input: "$t_v",
in: {
$arrayToObject: [[
{ k: "t", v: "$$this.t" },
{ k: "$sig_nam", v: "$$this.v" }
]]
}
}
}
}
}
])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.