【问题标题】:MongoDB String type field search match against Array of stringMongoDB字符串类型字段搜索匹配字符串数组
【发布时间】:2013-07-24 10:41:36
【问题描述】:
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 都可以应用于 Array 而不是 String 类型的字段,就像我的情况一样。 那么是否可以在 where 子句中使用条件而不是迭代每个元素

【问题讨论】:

    标签: ruby-on-rails mongodb ruby-on-rails-3.2 mongoid


    【解决方案1】:

    虽然$all 只能应用于数组,但$in 并非如此。

    可能导致您出现问题的原因是第一个查询只会与文本完全匹配,您是否尝试过类似的操作:

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

    【讨论】:

    • 鉴于投反对票,我想我误解了你的问题。您能否更详细地解释您想要实现的目标?
    猜你喜欢
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多