带有 AND 和 OR 条件的 Mongoid 查询



我正在为我正在创建的新应用程序使用MongoDB,我只需要它的某些数据。我需要以下字段:当前(布尔值)、位置、扇区和名称。职位字段填充四个值之一 - "现金、SPVR、OFF 和培训",而部门字段有两个值之一 - "休息或工作"。我想要一个查询,该查询将为我提供存在以下条件的所有记录:1. 电流 = 真2. 仓位 = "SPVR" 或 "现金" 或 扇区 = "突破" 和3. 名称不为空

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

这是 mu 当前从 Mongoid 语句开始

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')

最新更新