如何在mongodb查询中检查if条件中的空数组?

如何在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,

我试图通过使用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' => []
                              ]
                        ]    
                ]]    
基本上,我试图检查“$nonexpiredAllotsOfRoom”是否为空。如果为空,则应返回空数组,否则应返回“$NoneExpiredAllotmentsOfRoom”的最后一个元素。上面的代码正在抛出错误消息“无法识别的表达式'$NoneExpiredAllotmentsOfRoom'。请帮忙

RecentAllotmentsDetails =>  {
                              $cond: { if: { $ne: [ 
                              "$NonExpiredAllotmentsOfRoom", [] ] }, 
                               then: ['$arrayElemAt' => 
                                      ['$NonExpiredAllotmentsOfRoom', -1 ]] ,
                               else: []
                                }   

                              }

在您的管道中尝试此功能

您可以发布一些示例数据吗?