当我执行此查询时:
User.where(:comments.size => 10)
我收到以下错误:
undefined method `size' for :comments:Symbol
但根据这里的文档:
这应该是可能的。那么,为什么会出现错误?
注意:“comments”是与 User 具有“has_and_belongs_to_many”关系的单独集合。
我正在使用 mongoid 3.0.0 和 bson_ext 1.6.1
提前致谢!
当我执行此查询时:
User.where(:comments.size => 10)
我收到以下错误:
undefined method `size' for :comments:Symbol
但根据这里的文档:
这应该是可能的。那么,为什么会出现错误?
注意:“comments”是与 User 具有“has_and_belongs_to_many”关系的单独集合。
我正在使用 mongoid 3.0.0 和 bson_ext 1.6.1
提前致谢!
如果用户嵌入评论,这将起作用,但当您将用户与评论相关联时,这将起作用。由于 $size 运算符,它适用于嵌入(尽管这不是一个超级高效的查询。最好将大小缓存在单独的字段中)。
在 Mongoid 3 中使用with_size
, not size
。它将转换为 MongoDB$size
运算符。
Queryable#with_size
:添加$size
选择。匹配数组字段具有所提供值的确切大小的文档。这被命名为with_size
不与 Ruby 的Enumerable#size
或冲突Symbol#size
。”(来自Origin Selection 文档)