我有一个这样的 mongodb 集合
{"assigneeId" => 1000, "status" => 3, "starttime" => "2014 Feb 25", "numofdays => 6} {"assigneeId" => 1000, "status" => 2, "starttime" => “2014 年 1 月 10 日”,“numofdays => 6} {“assigneeId” => 1000,“status” => 3,“starttime” => “2014 年 1 月 1 日”,“numofdays => 20}
我写了一个 MongoDB 查询,用状态为 3 的 assigneeId 对上述集合进行分组,并像这样添加 numofdays 的值
db.events.group ( { key: {assigneeId:1}, cond: {status: {$gte: 3}}, reduce: function (curr, result) {result.total++; result.numofdays += curr.numofdays; },初始:{total:0,numofdays:0}})
这给出了 Mongodb cli 预期的输出。
当我编写用于执行相同查询的 ruby 代码时,我无法使其工作。对于类似的问题,我得到了很多不同的点击,但似乎没有一种格式有效。我无法克服 ruby 中用于分组功能的语法错误。请注意我没有使用 mongoid。如果我可以使用聚合框架完成这项工作,那对我来说也很好。
这是我写的 ruby 查询和相同的错误。
@events_h.group (
:cond => {:status => { '$in' => ['3']}},
:key => 'assigneeId',
:initial => {count:0},
:reduce => "function(x, y) {y.count += x.count;}"
)
我得到的错误
analyze.rb:43: 语法错误,意外 ',',期待 ')' out = @events_h.group (["assigneeId"], { }, { }, "function() { }") ^ analyze.rb: 43:语法错误,意外的')',期待keyword_end analyze.rb:83:语法错误,意外的输入结束,期待keyword_end
任何帮助深表感谢。
谢谢