具有 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')
我正在为我正在创建的新应用程序使用 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')