【发布时间】:2014-12-05 21:02:34
【问题描述】:
这个问题的解决方案可能看起来很简单,但我一直在挥舞着没有答案。
我在我的 Rails 4.1.4 应用中使用 Mongoid。我有一个模型,其中包含一个 Array 字段,该字段将容纳 String 值。
我需要模型中的 Mongoid 的 范围 来检索此 Array 字段包含特定 String的那些实例> 值,作为范围的参数给出。假设我们有这个模型:
class SomeModel
include Mongoid::Document
include Mongoid::Timestamps
field :some_array, type: Array, default: Array.new
scope :some_scope, ->(value){ elem_match(some_array: value) }
end
上面的 范围 不起作用,因为很明显,在 MongoDB $elemMatch 需要接收 Criteria 作为值。但是,Criteria 怎么会只是说元素必须等于给定值???。
关于如何编写这个非常简单的作用域的任何线索???。
问候!!!。提前致谢。
【问题讨论】:
标签: ruby-on-rails arrays mongodb mongoid