如何将SQL转换为MongoDB查询语言?

cl25kdpy  于 2023-03-29  发布在  Go
关注(0)|答案(1)|浏览(191)

如何像这样将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'。

js4nwp54

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,添加以下内容:

{
    $project: 
    {
      _id: 0
    }
  }

作为数组的元素传递到聚合流水线。

相关问题