具有AND和OR条件的Mongoid查询

时间:2017-01-31 13:31:24

标签: mongodb mongoid

我正在使用MongoDB创建一个我正在创建的新应用程序,我只需要它的某些数据。我需要以下字段:current(boolean),position,sector和name。位置字段填充四个值之一 - “现金,SPVR,OFF和培训”,而扇区字段具有两个值之一 - “中断或工作”。我想要一个查询,它将为我提供存在以下条件的所有记录: 1. current = TRUE 2. Position =“SPVR”或“CASH”OR Sector =“BREAK”和 3.名称不是NULL

我遇到的问题是有数百条记录的值为BREAK,但大多数记录在“名称”字段中没有值。我不希望任何没有与之关联的名称的记录。所以在这方面,在上面第2行,我猜这个OR可能是AND?

这是Mongoid声明的当前开始

get '/currentstate*' do
    StateTransaction.where( current: true, :position.in =>["SPVR", "CASH"] ).to_json

  end

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

应该有效

StateTransaction.where(current: true, :name.ne => ["",nil]).and(
  StateTransaction.or(
    {:position.in =>["SPVR", "CASH"]},
    {sector: "BREAK"}
  ).selector
)

答案 1 :(得分:1)

以下可以说更简单:

 $gsutil rsync -d .\ gs://bucketname/folder