如何像这样将SQL更改为MongoDB查询语言
select count(case when isA=1 then 1 else 0 end ) as Acount,count(case when isB=1 then 1 else 0 end ) as Bcount from Table1
我想同时查询'Acount'和'Bcount'。
js4nwp541#
从MongoDB 4.2开始,你可以使用aggregation pipelines来实现这一点。你可以将SUM与表达式一起使用。它将是这样的:
db.table1.aggregate( [ { $group: { _id: null, Acount: {$sum: { $cond: [{ $eq: ["$isA", 1] }, 1, 0]}}, Bcount: {$sum: {$cond: [{ $eq: ["$isB", 1] }, 1, 0]}} } } ]);
您可以添加project以从结果中删除_id,添加以下内容:
_id
{ $project: { _id: 0 } }
作为数组的元素传递到聚合流水线。
1条答案
按热度按时间js4nwp541#
从MongoDB 4.2开始,你可以使用aggregation pipelines来实现这一点。你可以将SUM与表达式一起使用。它将是这样的:
您可以添加project以从结果中删除
_id
,添加以下内容:作为数组的元素传递到聚合流水线。