在订单表inc_id = 1中,其状态为canceled
,因此,当我在mongo shell中运行它时,没有任何结果
db.orders.find({
$or: [{status:'canceled'}, {status:'booked'}],
$or: [{status:'booked'}, {status: 'completed'}],
inc_id: 1
})
但是当我在轨道上的红宝石中使用蒙戈德运行
orders = Order.where({"$or": [{status:'canceled'}, {status:'booked'}]})
orders = orders.where({"$or": [{status:'booked'}, {status: 'completed'}]})
orders = orders.where(:inc_id => 1)
结果是inc_id 1记录。查询以这种方式执行
db.orders.find({
$or: [{status:'canceled'}, {status:'booked'},
{status: 'completed'}],
inc_id: 1
})
我如何使用蒙古型来实现以前的行为
软件详细信息:
答案 0 :(得分:0)
尝试一下:
Order.where("$and" => [{ "$or" => [{status: 'canceled'}, {status: 'booked'}] },
{ "$or" => [{status: 'booked' }, {status: 'completed'}] }])
.where(inc_id: 1)