如何在erlang MongoDB驱动程序中实现聚合



我正在尝试将聚合与erlang mongodb驱动程序一起使用。这是我迄今为止尝试过的

mongo_query:command({Db, Conn}, {aggregate,<<"users">>,pipeline, <<"{$group:{_id:"", id: {$sum: "$id"}} }, {$project:{ _id:0, id: "$id"}}">>}, false).

但是我收到这个错误

** exception error: {bad_command,{errmsg,<<"exception: wrong type for field (pipeline) 2 != 4">>,
                                         code,13111,ok,0.0}}

我在前进中遇到了困难,正在寻求任何帮助,以实现与erlang驱动程序的聚合。

只是要明确的是,我正在努力实现这个

db.users.aggregate({$group:{_id:",id:{$sum:"$id"}}),{$project:{_id:0,id:"$id"}});

它在MongoDB shell中工作。

如果有人加入进来,我会听从了解erlang的人的意见,但由于没有人加入:我认为你正在为驱动程序需要列表的管道参数提供一个字符串。

您应该尝试以下操作:
mongo:command(Connection, {aggregate,<<"users">>,pipeline, [{'$group',{'_id', id, {'$sum', '$id'}}}, {'$project',{'_id',0, id, '$id'}}]}).

最新更新