数据类型如下:
[{
_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)),
type: 0,
})
.group({
_id: null,
totalPrice: $.sum('$price'),
})
.end();
let res2 = await recordDb
.aggregate()
.match({
time: _.gte(startTime).and(_.lte(endTime)),
type: 1,
})
.group({
_id: null,
totalPrice: $.sum('$price'),
})
.end();
这种效果?