【发布时间】:2022-10-13 05:13:14
【问题描述】:
给定一个将任意标签存储为键值对的数据结构。
标签对象的字段名称对应于键,因此事先不知道。
如何将多个此类文档聚合为一个,以便它包含每个标签的字段以及包含出现值的数组?
输入:
{
"_id" : ObjectId("6346826e3b4cd5a90b20b75b"),
"tags" : {
"planet" : "earth",
"color" : "blue"
}
}
{
"_id" : ObjectId("634683723b4cd5a90b20b819"),
"tags" : {
"planet" : "earth",
"color" : "green",
"foo" : "bar"
}
}
{
"_id" : ObjectId("634683823b4cd5a90b20b829"),
"tags" : {
"foo" : "acme",
"color" : "red",
"xyz" : "1"
}
}
预期输出:
{
"_id" : ObjectId("634684063b4cd5a90b20b87f"),
"tags" : {
"planet" : [ "earth" ],
"color" : [ "blue", "green", "red" ],
"foo" : [ "bar", "acme" ],
"xyz" : [ "1" ]
}
}
【问题讨论】: