如何在mongodb查询中检查if条件中的空数组?
我试图通过使用if-else条件编写以下mongodb投影查询来确定数组是否为空如何在mongodb查询中检查if条件中的空数组?,mongodb,mongodb-query,aggregation-framework,php-mongodb,Mongodb,Mongodb Query,Aggregation Framework,Php Mongodb,我试图通过使用if-else条件编写以下mongodb投影查询来确定数组是否为空 [ '$project' => [ '_id' => 1.0, 'Name' => 1.0, 'AllotmentsDetails' => 1.0,
[
'$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' => []
]
]
]]
基本上,我试图检查“$nonexpiredAllotsOfRoom”是否为空。如果为空,则应返回空数组,否则应返回“$NoneExpiredAllotmentsOfRoom”的最后一个元素。上面的代码正在抛出错误消息“无法识别的表达式'$NoneExpiredAllotmentsOfRoom'。请帮忙
RecentAllotmentsDetails => {
$cond: { if: { $ne: [
"$NonExpiredAllotmentsOfRoom", [] ] },
then: ['$arrayElemAt' =>
['$NonExpiredAllotmentsOfRoom', -1 ]] ,
else: []
}
}
在您的管道中尝试此功能您可以发布一些示例数据吗?