я новичок в mongodb после многих лет работы с mysql и пытаюсь понять этот эквивалентный запрос в mongodb с помощью php composer
выберите * из таблицы, где (x > 0 и x <30) или x = 'половина' и sid = 1
$query = [
'$and' => [
[
'sid'=> 1
], ['$and' => [[
'info.x' => [
'$lt' => '30'
]
], [
'info.x' => [
'$gt' => '0'
]
], [
'info.x' => [ /// i want to put this in $or
'half'
]
]]
]
]
];
я хочу отобразить все, что больше 0 и меньше 30 или равно «половине», где sid равен 1
Спасибо






Это должно быть
db.collection.find({
"$or": [
{ "x": { "$gte": 0, "$lte": 30 }},
{ "x": "half" }
],
"sid": 1
})
Или
$query = [
'$or'=> [
[ 'x'=> [ '$gte'=> 0, '$lte'=> 30 ]],
[ 'x'=> 'half' ]
],
'sid'=> 1
]