一如既往开发小程序,
场景
云开发数据库,在聚合的时候,先where,再group
问题:
那么云开放官方文档支持这种情况吗?
官方文档链接:
官方示例代码
const _ = db.command
const $ = _.aggregate
db.collection('articles')
.aggregate()
.match({
score: _.gt(80)
})
.group({
_id: null,
count: $.sum(1)
})
.end()
本文场景,统计historys集合里面,在保证status=1下,根据subjectid来统计记录条数
具体代码
getGroupData: function(openid){
let that = this;
const db = wx.cloud.database();
const $ = db.command.aggregate;
// 使用操作符
const _ = db.command;
db.collection('historys').aggregate()
.match({
_openid: openid,
status: _.eq(1)
})
.group({
_id: {
subjectid: '$subjectid'
},
nums: $.sum(1)
})
.end()
.then((res)=>{
console.log('20200223');
console.log(res);
let groupDatas = res.list;
})
}
输出结果
注意事项:
注意这个api是小程序基础库2.8.3,而云开发默认的基础库是2.8.1,当然随着时间的推移这些都是变化的,只是开发的时候如果代码不work,核对下基础库版本是否匹配得上。
match 可以 传入一个集合么。相当于Command.all 这个用法,
用match代替where
这个跟mysql一样的用法么?