7***@qq.com
7***@qq.com
  • 发布:2022-12-08 16:34
  • 更新:2022-12-08 17:19
  • 阅读:135

大佬们,我想问个比较简单的问题,如何用sql对数据库去重后获取数量。

分类:uniCloud

.where({"voteID": voteID}).field('_openid').distinct().count()
这个不行,如果是拿全部数据再去重的话,太繁琐了。有没有简单点的 直接count?

2022-12-08 16:34 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者)

目前我的解决方案是 .where({"voteID": voteID}).field('_openid').distinct().get() 然后再length

DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

使用聚合查询 group 阶段操作符可以实现,例如:

const $ = db.command.aggregate  
db.collection('collectionName')  
.match({  
  voteID: voteID  
})  
.group({  
  _id: "$_openid",  
  count: $.sum(1)  
}).end()

使用JQL示例:

db.collection('collectionName').where({voteID: voteID}).group('voteID').groupField('sum(1) as count').get()

要回复问题请先登录注册