我正在尝试做一些我认为很简单的事情。假设我在 mongo 中有一系列具有公共键和可变数量属性的记录。我想选择记录中的所有属性并按名称分组。例如
{ Name: George, x: 5, y: 3 }
{ Name: George, z: 9 }
{ Name: Rob, x: 12, y: 2 }
我想生成一个如下所示的 CSV:
Name X Y Z
George 5 3 9
Rob 12 2
Tried
DB.data.aggregate({ $group : { _id : "$Name" } })
不幸的是,我返回所有名称作为记录,但没有返回所有可能属性的并集。
如果您想组合属性,则需要将它们添加到group
。例如,使用$addToSet http://docs.mongodb.org/manual/reference/aggregation/#_S_addToSet查找按每个名称分组的 x,y,z 属性的唯一值:
db.data.aggregate(
{ $group : {
_id : "$Name",
x: { $addToSet: "$x" },
y: { $addToSet: "$y" },
z: { $addToSet: "$z" },
}}
)
Returns:
{
"result" : [
{
"_id" : "Rob",
"x" : [
12
],
"y" : [
2
],
"z" : [ ]
},
{
"_id" : "George",
"x" : [
5
],
"y" : [
3
],
"z" : [
9
]
}
],
"ok" : 1
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)