具有 AND 和 OR 条件的 Mongoid 查询

Mongoid query with AND and OR condition

我正在为我正在创建的新应用程序使用 MongoDB,我只需要它的某些数据。我需要以下字段:当前(布尔值)、位置、扇区和名称。 position 字段填充有四个值之一 - "cash, SPVR, OFF, and training",而 sector 字段具有两个值之一 - "Break or Working"。我想要一个查询,它会给我所有存在以下条件的记录: 1. 当前 = 真 2. 位置 = "SPVR" 或 "CASH" 或扇区 = "BREAK" 和 3.名称不为NULL

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

这是从 Mongoid 语句开始的 mu 当前开始

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

  end

如有任何帮助,我们将不胜感激。

谢谢!!

它应该有效

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

以下可以说更简单:

sts = StateTransaction.where(current: true, :name.ne => ["",nil])
sts.any_of(:position.in => ["SPVR", "CASH"], sector: 'BREAK')