2013-07-24 71 views
1
Class Tweet 
    field :lD, as: :load_date,   type:Time 
    field :t,  as: :text, type:String 
end 

Tweet.where({:text=>{ $in: ["champ","looser"]},:load_date.gte=>1.month.ago}) #OR 
Tweet.where({:text=>{ $all: ["champ","looser"]},:load_date.gte=>1.month.ago}) #AND 

in和all可以應用在數組而不是字符串類型字段在我的情況。 所以有可能使用where子句中的條件而不是迭代每個元素MongoDB字符串類型字段搜索匹配字符串數組

回答

-1

儘管​​3210只能應用於數組,但$in並不是這種情況。

什麼可能導致您的問題是,第一次查詢只會完全匹配的文字,你有沒有嘗試過這樣的:

Tweet.where({:text=>{ "$in" => [/champ/,/looser/]},:load_date.gte=>1.month.ago.utc}) 
+0

鑑於downvote,我想我誤解你的問題。你能否更詳細地解釋你想要達到的目標? – jimoleary