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_ }
}
}
}
]
)
希望你觉得有用 为了正确理解您的问题,您能否发布示例文档和所需输出?您可以使用并发布示例文档,然后单击“共享链接”共享链接。然后任何人都可以为您编辑查询。我们确实需要样本文档和所需输出。为了正确理解您的问题,您可以发布样本文档和所需输出吗?您可以使用并发布示例文档,然后单击“共享链接”共享链接。然后任何人都可以为您编辑查询。我们需要的样本文件和所需的输出肯定。