【问题标题】:mongoid query - calling the size method produces an errormongoid 查询 - 调用 size 方法会产生错误
【发布时间】:2012-05-02 08:21:48
【问题描述】:

当我执行这个查询时:

User.where(:comments.size => 10)

我收到以下错误:

undefined method `size' for :comments:Symbol

但是根据这里的文档:

http://mongoid.org/docs/querying/criteria.html

这应该是可能的。那么,为什么会出错呢?

注意:“cmets”是与 User 具有“has_and_belongs_to_many”关系的单独集合。

我正在使用 mongoid 3.0.0 和 bson_ext 1.6.1

提前致谢!

【问题讨论】:

    标签: ruby-on-rails-3 mongodb mongoid mongodb-query


    【解决方案1】:

    如果用户嵌入评论,这将起作用,但当您用户与评论联系起来时,这将起作用。由于 $size 运算符,它适用于嵌入(尽管这不是一个超级高效的查询。最好将大小缓存在单独的字段中)。

    【讨论】:

      【解决方案2】:

      在 Mongoid 3 中使用 with_size,而不是 size。它将转换为 MongoDB $size 运算符。

      Queryable#with_size:添加$size 选择。匹配数组字段具有所提供值的确切大小的文档。这被命名为with_size 不与Ruby 的Enumerable#sizeSymbol#size 冲突。”(来自Origin Selection documentation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-13
        • 2014-03-23
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多