执行此查询时:
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
提前致谢!
答案 0 :(得分:2)
如果用户嵌入了评论,但是当将用户与评论相关联时,则无效。由于$ size运算符,它适用于嵌入(尽管这不是一个超级高效的查询来执行。最好将大小缓存在单独的字段中。)
答案 1 :(得分:0)
使用with_size
,而不是size
,使用Mongoid 3.它将转换为MongoDB $size
运算符。
Queryable#with_size
:添加$size
选项。匹配数组字段具有所提供值的确切大小的文档。这被命名为with_size
,不会与Ruby的Enumerable#size
或Symbol#size
冲突。“(来自Origin Selection documentation)