执行两个Mongoid"any_in"查询的OR

Jer*_*ith 4 ruby mongodb mongoid

如果我有两个查询,如下所示:

Store.any_in(:store_id => @user.stores_followed)
Store.any_in(:store_id => @category.stores)
Run Code Online (Sandbox Code Playgroud)

如何使用any_of将它们加入OR?我试过这个但事实并非如此.我试过了

Store.any_of({:store_id.any_in => @user.stores_followed}, 
  {:store_id.any_in => @category.stores})
Run Code Online (Sandbox Code Playgroud)

Jer*_*ith 6

看起来它在Mongoid中并不完全支持,所以我必须这样做:

Store.any_of({"store_id" => { "$in" => @user.stores_followed}}, {"store_id" => 
   {"$in" => (:store_id => @category.stores)}})
Run Code Online (Sandbox Code Playgroud)


Jes*_*ark 5

您传递 $or 查询 $in 条件数组,如下所示:

Store.or( { :store_id.in => @user.stores_followed }, { :store_id.in => @category.stores } )
Run Code Online (Sandbox Code Playgroud)