具有多个值的mongodb $ elemMatch

时间:2018-03-07 12:14:57

标签: ruby-on-rails ruby mongodb

我想根据Movie数组tags来查询以下Mongodb对象

Movie.last.tags
 => [{"type"=>"Genre", "tags"=>["Comedy"]}, {"type"=>"score", "tags" => ["Excellent"]}] 

使用$elemMatch

Movie.where({'tags' => {'$elemMatch' => {'type' => "Genre", "tags" => "Comedy"}}})

我可以使用Comedy标记查询所有条目,但我需要将搜索范围限制为tags数组中{"type"=>"score", "tags" => ["Excellent"]}

的搜索范围。

1 个答案:

答案 0 :(得分:0)

您找到了解决方案 @Veeram,请复制此答案并根据您的意愿进行修改。我会接受它,我将感谢你与我们分享你的专业知识

Movie.where({'tags' => { '$all' => [
                        {'$elemMatch' => {'type' => "Genre", "tags" => "Comedy"}},
                        {'$elemMatch' => {'type' => "score", "tags" => "Excellent"}}
                        ]}
            })

非常感谢 最好的祝福 的Fabrizio