2012-03-04 69 views
0

我有這個疑問:MongoMapper「鍵必須是字符串或符號」與OR查詢

Model.where({'$or' => [{:date => nil}, {:date.gt => Time.new}]}).count 

我得到一個錯誤:

keys must be strings or symbols 

我分裂或查詢中的兩個,這兩個作品。我可以爲$或$做出錯誤嗎?

以防萬一:蒙戈映射器0.9.2)

以防萬一,我更新到0.11

回答

0

但它的工作原理是這樣的:

.where({:$or => [{:date => nil}, {:date => {:$gt => nil}}]}) 

我不知道爲什麼。

我是如何找到的?小姐在此輸入

.where({:$or => [{:date => nil}]}) 

有趣的是吧?

+0

':date.gt'不是符號,而是符號操作符。 – 2012-03-04 02:15:27

+0

但是.where(:data.gt => Time.new)起作用,它也是一個SymbolOperator。這意味着SymbolOperator自動替換邏輯在嵌套查詢中中斷? :s – ProxyGear 2012-03-04 02:24:15

+0

但是'where(:data.gt => Time.now)'不使用':$或'。我不確定幕後發生了什麼,在任何情況下似乎都是一種奇怪的限制。 – 2012-03-04 02:28:49

相關問題