私はMongoidで私のグループ化の条件を提供したいのですが、条件ハッシュの属性に対して複数の値を送るにはどうすればいいですか?これは私が何をしたいです:どちらかpage_id
とそこでMongoid `group()`条件
PageViews.collection.group(
cond: {page_id: ['4e6912618083ab383e000010', '4e6912618083ab383e000009']},
key: 'timestamp',
initial: {count: 0},
reduce: "function(x, y) {y.count += x.count;}"
)
任意のPageView
離れクエリのだろうが、私はすべてで動作するように条件のハッシュ(cond
)を取得するように見えることはできません!私はここで間違って何をしています、私は本当に混乱しています。ここで
はgroup()
メソッドのAPIドキュメントです:http://api.mongodb.org/ruby/current/Mongo/Collection.html#group-instance_method
任意の助けいただければ幸いです。
PageViews.collection.group(
cond: {page_id: { $in : ['4e6912618083ab383e000010', '4e6912618083ab383e000009']}},
key: 'timestamp',
initial: {count: 0},
reduce: "function(x, y) {y.count += x.count;}"
)
は、次のエラーを返しますが、構文は、私には罰金になります:
更新
のようなクエリを実行すると、
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>'
それはそのイライラこの例はどこにもありませんが、ドキュメントではt彼は、条件パラメータのようなである:それはString
またはBSON::Code
がかかる場合
(String, BSON::Code) :cond — default: {} — A document specifying a query for filtering the documents over which the aggregation is run (optional).
だから、何これは次のようになりますか?
うーん、私は構文エラーを与えているようです$ end expect $ end ... '、' 4e6912618083ab383e000009 ']}}、...' –
'page_id:'と '$ in'の間にかっこを入れましたか? – Russell
ご協力いただきありがとうございます。 –