收藏
回答

数据库同一条记录可能有两种类型能否在一条数据库查询语句分别求和?

数据类型如下:

[{
  _id: 1,
  price: 100,
  type: 0,
}, {
  _id: 2,
  price: 200,
  type: 1,
}, {
  _id: 3,
  price: 150,
  type: 0,
}]


我的问题是能否在一条云开发数据库查询语句里求出 type = 0 时的 price 总和,还有 type = 1 时的 price 总和?

我现在的方法比较笨,就是写了两次数据库查询,分别match,然后求和。请问如何优化?


let res1 = await recordDb
 .aggregate()
 .match({
  time: _.gte(startTime).and(_.lte(endTime)),
  type0,
 })
 .group({
  _id: null,
  totalPrice: $.sum('$price'),
 })
 .end();    

let res2 = await recordDb
 .aggregate()
 .match({
  time: _.gte(startTime).and(_.lte(endTime)),
  type1,
 })
 .group({
  _id: null,
  totalPrice: $.sum('$price'),
  })
  .end();
回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-06-15

    这种效果?


    2020-06-15
    有用 1
    回复 1
    • 神经蛙
      神经蛙
      2020-06-15
      对啊,我忘记了,可以用group,感谢,茅塞顿开
      2020-06-15
      回复
登录 后发表内容
问题标签