如何根据多个条件查找嵌入的Mongoid文档?
我有一个包含嵌入文档的Mongoid文档。 我想在其中存在具有多个条件的嵌入式文档的所有顶级文档中进行搜索。
TopDoc.where('inside.first_name' => 'Bob', 'inside.last_name' => 'Jones')
但在我看来,这将与Bob Wever和Paul Jones的TopDoc相匹配,这是错误的。
你需要使用$ elemMatch 。 使用Mongoid,以下行应该可以解决问题
TopDoc.elem_match(inside: { first_name: 'Bob', last_name: 'Jones' })
这相当于:
TopDoc.where(:inside.elem_match => { first_name: 'Bob', last_name: 'Jones'})
- 如何validation数组字段的成员?
- Rails&Mongoid独特的结果
- 如何在同一个Ruby Rails项目中配置MongoMapper和ActiveRecord
- Mongo :: Error :: OperationFailure:E11000重复键错误集合:metalab_development.demands index:sn_1 dup key:{:null}(11000)
- 如何直接从Ruby查询MongoDB而不是使用Mongoid?
- 通过Mongoid / MongoDB建模多对多:
- 如何找到属性foo或bar等于查询值的对象?
- mongodb:将对象ID转换为BSON :: ObjectId
- Rails 4 / Devise / MongoDB:使用自定义属性和强参数的“未允许的参数”