我想做一些我觉得很简单的事情.假设我在mongo中有一系列记录,它们具有公共密钥和可变数量的属性.我想在记录中选择所有属性并按名称分组.例如
{ Name: George, x: 5, y: 3 }
{ Name: George, z: 9 }
{ Name: Rob, x: 12, y: 2 }
Run Code Online (Sandbox Code Playgroud)
我想生成一个如下所示的CSV:
Name X Y Z
George 5 3 9
Rob 12 2
Run Code Online (Sandbox Code Playgroud)
试着
DB.data.aggregate({ $group : { _id : "$Name" } })
Run Code Online (Sandbox Code Playgroud)
不幸的是,我将所有名称作为记录返回,但不是所有可能属性的并集.
Ste*_*nie 11
如果要组合属性,则需要将这些属性添加到group
.例如,$addToSet
用于查找按每个名称分组的x,y,z属性的唯一值:
db.data.aggregate(
{ $group : {
_id : "$Name",
x: { $addToSet: "$x" },
y: { $addToSet: "$y" },
z: { $addToSet: "$z" },
}}
)
Run Code Online (Sandbox Code Playgroud)
返回:
{
"result" : [
{
"_id" : "Rob",
"x" : [
12
],
"y" : [
2
],
"z" : [ ]
},
{
"_id" : "George",
"x" : [
5
],
"y" : [
3
],
"z" : [
9
]
}
],
"ok" : 1
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9397 次 |
最近记录: |