我正在尝试构建一张地图,作为MongoDB的组操作的一部分,但没有运气。
我的文档的结构如下:
type : artist,
artist : David Bowie,
song : "Starman"
例如,作为我的聚合的一部分,我想对所有"类型"进行分组,并拥有包含艺术家名称为钥匙的地图,而歌曲作为价值。对于以下输出:
[_id : artist, myMap : ["David Bowie" : "Starman"]]
,但我不确定是否可能。我尝试使用Mongos $ PUSH操作,但是当我尝试推开地图时它不喜欢它。有人尝试过吗?
我尝试的查询:
db.music.aggregate(
{
$group: {
_id: "$type",
myMap : { $push: {"$artist" : "$song" }}
}
}
)
这可能接近您要寻找的内容:
db.music.aggregate(
{$project :
{
"type" : 1,
foo : { "artist" : "$artist" , "song" : "$song"}
}
},
{$group :
{ "_id" : "$type", "map" : {$push: "$foo" }}
}
)
我认为你不能用mongodb做到这一点。但是有一张吉拉票要求该功能。