Tôi muốn cung cấp một điều kiện cho nhóm của tôi trong Mongoid, nhưng làm thế nào tôi có thể gửi nhiều giá trị cho một thuộc tính trong điều kiện băm? Đây là những gì tôi muốn làm:Mongoid `nhóm()` điều kiện
PageViews.collection.group(
cond: {page_id: ['4e6912618083ab383e000010', '4e6912618083ab383e000009']},
key: 'timestamp',
initial: {count: 0},
reduce: "function(x, y) {y.count += x.count;}"
)
Vì vậy, do đó bất kỳ PageView
với một trong hai page_id
sẽ ngoài của truy vấn, nhưng tôi dường như không thể có được băm điều kiện (cond
) để làm việc ở tất cả! Tôi đang làm gì sai ở đây, tôi thực sự bối rối.
Dưới đây là các tài liệu API cho các phương pháp group()
: http://api.mongodb.org/ruby/current/Mongo/Collection.html#group-instance_method
Bất kỳ trợ giúp sẽ được đánh giá rất nhiều.
cập nhật
Chạy truy vấn như vậy:
PageViews.collection.group(
cond: {page_id: { $in : ['4e6912618083ab383e000010', '4e6912618083ab383e000009']}},
key: 'timestamp',
initial: {count: 0},
reduce: "function(x, y) {y.count += x.count;}"
)
Trả về lỗi sau, nhưng cú pháp có vẻ tốt đẹp với tôi:
SyntaxError: (irb):170: syntax error, unexpected ':', expecting tASSOC
cond: {page_id: { $in : ['4e6912618083ab383e000010',...
^
(irb):170: syntax error, unexpected '}', expecting $end
...', '4e6912618083ab383e000009']}},
... ^
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/commands/console.rb:45:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/commands/console.rb:8:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Đó là bực bội mà không có ví dụ nào ở đây, các tài liệu nói rằng t ông tham số điều kiện là như vậy:
(String, BSON::Code) :cond — default: {} — A document specifying a query for filtering the documents over which the aggregation is run (optional).
Vì vậy, nếu phải mất một String
hoặc BSON::Code
, điều gì sẽ này như thế nào?
Hmm, dường như để cho tôi một lỗi cú pháp: '(IRB): 158: lỗi cú pháp, bất ngờ '}', mong $ $ ... ',' 4e6912618083ab383e000009 ']}}, ... ' –
Bạn đã đặt dấu ngoặc mở giữa' page_id: 'và' $ in'? – Russell
Cảm ơn bạn rất nhiều vì đã giúp đỡ, tôi đã cập nhật câu hỏi của mình với những gì xảy ra. –