需求:对表数据进行分组后,根据某个字段去重,然后在count命令行有 db.collection.distinct("someField")问:用morphia应该怎么写?或者通过原生的mongodb驱动应该怎么做?如果用聚合的话,怎么才能当查询的结果为null时统计的数量为0,比如sql中的 isNull(count(1), 0)
2 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
调用com.mongodb.DBCollection#distinct
方法,对应问题中的命令行 db.collection.distinct("someField")
。
这样会把所有的数据都返回,所以如果只是为了得到count,没必要用distinct。
可以直接用aggregate。
db.collection.aggregate( [{ $group:{ _id:"$someField", count:{$sum:1} } }] )
- 2 回答
- 0 关注
- 1163 浏览
添加回答
举报
0/150
提交
取消