当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – 如何根据多个标准查找嵌入的Mongoid文档?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个包含嵌入文档的Mongoid文档.我想搜索其中所有存在具有多个条件的嵌入式文档的顶级文档. TopDoc.where('inside.first_name' = 'Bob', 'inside.last_name' = 'Jones') 但在我看来,这将与Bob Wever和P
我有一个包含嵌入文档的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'})
网友评论