是否可以在MongoDB聚合中构建地图



我正在尝试构建一张地图,作为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做到这一点。但是有一张吉拉票要求该功能。

最新更新