【发布时间】:2019-11-15 08:29:22
【问题描述】:
我试图通过使用 if else 条件编写以下 mongodb 投影查询来查找数组是否为空。
[
'$project' => [
'_id' => 1.0,
'Name' => 1.0,
'AllotmentsDetails' => 1.0,
'NonExpiredAllotmentsOfRoomWithCheckoutZero' => 1.0,
'NonExpiredAllotmentsOfRoomWithCheckoutOne' => 1.0,
'NonExpiredAllotmentsOfRoom' => 1.0,
'RecentAllotmentsDetails' => [
'$cond'=> [
'if'=> [
'$not' => ['$NonExpiredAllotmentsOfRoom' => [ '$size' => 0 ]]
],
'then' => ['$arrayElemAt' => ['$NonExpiredAllotmentsOfRoom', -1 ]],
'else' => []
]
]
]]
基本上我正在尝试检查“$NonExpiredAllotmentsOfRoom”是否为空。如果它为空,则应返回空数组,否则应返回“$NonExpiredAllotmentsOfRoom”的最后一个元素。上面的代码抛出错误消息“无法识别的表达式'$NonExpiredAllotmentsOfRoom”。请帮忙 !!!
【问题讨论】:
-
你能发布一些示例数据吗?
标签: mongodb mongodb-query aggregation-framework php-mongodb