我正在尝试将聚合与erlang mongodb driver一起使用。这是我到目前为止所尝试的
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:&#34;&#34;,id:{$ sum:&#34; $ id&#34;}}}, {$ project:{_ id:0,id:&#34; $ id&#34;}});
在MongoDB shell中有效。
答案 0 :(得分:1)
我会推荐一个知道erlang的人,如果有人已经插入,但是因为没有人:我认为你正在为管道参数提供一个字符串,驱动程序期望列表。
答案 1 :(得分:1)
你应该尝试这样的事情:
mongo:command(Connection, {aggregate,<<"users">>,pipeline, [{'$group',{'_id', id, {'$sum', '$id'}}}, {'$project',{'_id',0, id, '$id'}}]}).