#php #mongodb #project #php-mongodb
#php #mongodb #проект #php-mongodb
Вопрос:
Я хочу проверить, существует ли число в пределах диапазона в project, и вернуть true и false соответственно.
Это мой код
До сих пор я использовал $cond
наряду с if
и ‘$and’ для проверки числа
'$project' =>
[
'mrp' =>
[
'$cond' =>
[
'if' =>
[
'$and' =>
[
['$lte' => ['$mrp', 100]],
['$gte' => ['$mrp', 0]]
],
'then' => 'true',
'else' => 'false'
]
]
]
]
Я бы хотел вернуть true
Комментарии:
1. Не требуется
$cond
. Просто`'mrp' => [ '$and' => [ ['$lte' => ['$mrp', 100] ], [ '$gte' => ['$mrp', 0] ] ] ]
.$and
и другие операторы сравнения агрегации уже возвращают логическое значение. Кстати, ваша проблема заключалась в неправильном вложении, но вам также просто не нужно$cond
здесь.2. Перед отправкой конвейеров и других структур данных я предлагаю вам использовать
json_encode()
для создания JSON-версии ваших структур данных PHP для печати в журнале отладки. Это позволяет вам легко сравнивать с огромным количеством примеров синтаксиса JavaScript и убедиться, что ваша структура данных PHP действительно правильная. Здесь этого не было, и отсюда проблема. т.е.else
иthen
находятся внутриif
, когда они должны быть на одном уровне.3. спасибо за совет. ценю это
4. и решение сработало. я излишне усложнял это