【发布时间】:2011-05-21 15:13:41
【问题描述】:
我有两个模型,一个用户模型和一个嵌入式模型消息
class User
include Mongoid::Document
embeds_many :messages
end
class Message
include Mongoid::Document
field :keywords, :type => Array
end
我正在尝试做类似的事情:
u = User.last
u.messages.where(:keywords => /sometext/).first
但这不会返回任何内容,如果字段不是Array 类型并且是String,则正则表达式似乎可以正常工作。我怎么能用 Mongoid 做这样的事情?
我还应该提到这个 Mongo 查询工作正常:
db.users.find({"messages.keywords" : /index/ })
【问题讨论】:
-
您使用的似乎是
mongoid。这是 MongoDB ruby 驱动程序的包装器,并在它认为合适的时候输出它自己的查询。您有什么方法可以检查mongoid实际运行的查询吗?和你跑的一样吗? -
所以我相信这实际上是 Mongoid 如何处理嵌入式模型的问题,如果我将消息模型拉入引用模型,则此查询可以正常工作。
标签: ruby-on-rails regex mongodb mongoid