Node.js 如何将$match与条件if else一起使用?

Node.js 如何将$match与条件if else一起使用?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,因此,我想进行条件查询,其中如果counciperiod不等于1,我可以使用条件,其中其他人家庭数组中具有相同家庭id的人显示为禁用该条件的其他人 const families = await People.aggregate([ { $unwind: { path: '$families' } }, { $project: { Ids: '$families._id' } } ]); co

因此,我想进行条件查询,其中
如果counciperiod不等于1,我可以使用条件,其中其他人家庭数组中具有相同家庭id的人显示为禁用该条件的其他人

const families = await People.aggregate([
      {
        $unwind: {
          path: '$families'
        }
      },
      { $project: { Ids: '$families._id' } }
    ]);

    const families_id = families.map(function(i) {
      return i.Ids;
    });

    const people = await People.aggregate([
      {
        $project: {
          _id: 1,
          nia: 1,
          name: 1,
          address: 1,
          sector: 1,
          status: 1,
          grazing: 1,
          councilPeriod: 1,
          crtdDiff: { $subtract: [new Date(), '$dateJoined'] },
          sidiDiff: { $subtract: [new Date(), '$dateSidi'] }
        }
      },
      {
        $match: {
          status: 'Active',
          _id: { $nin: families_id },
          grazing: 'Tidak',
          councilPeriod: { $ne: 1 },
          crtdDiff: { $gt: 63072000000 },
          sidiDiff: { $gt: 63072000000 }
        }
      }
    ]);

如果counciperiod不等于1,那么家庭成员也会出现,否则情况正好相反。谢谢。

您可以在聚合中使用if条件,如

db.inventory.aggregate(
   [
      {
         $project:
           {
             item: 1,
             discount:
               {
                 $cond: { if: { $ne: [ "$councilPeriod", 1 ] }, then: _anyCondition_, 
                else: _anyCondition_ }
               }
           }
      }
   ]
)

希望你觉得有用

可以在聚合中使用if条件,如

db.inventory.aggregate(
   [
      {
         $project:
           {
             item: 1,
             discount:
               {
                 $cond: { if: { $ne: [ "$councilPeriod", 1 ] }, then: _anyCondition_, 
                else: _anyCondition_ }
               }
           }
      }
   ]
)

希望你觉得有用

为了正确理解您的问题,您能否发布示例文档和所需输出?您可以使用并发布示例文档,然后单击“共享链接”共享链接。然后任何人都可以为您编辑查询。我们确实需要样本文档和所需输出。为了正确理解您的问题,您可以发布样本文档和所需输出吗?您可以使用并发布示例文档,然后单击“共享链接”共享链接。然后任何人都可以为您编辑查询。我们需要的样本文件和所需的输出肯定。