这是MongoDB的文档结构。
{ "_id" :ObjectId("9elesdf3lk3jppefll34d210"), "category" :"data1",product:'data'}
{ "_id" :ObjectId("9elesdf3lk3jppefll34d211"), "category" : "data2",product:'data'}
{ "_id" :ObjectId("9elesdf3lk3jppefll34d211"), "category" : "data1",product:'data' }
其中category
已建立索引。我想对category
字段进行不同值的计数。
目前,我正在使用以下代码进行计数:
db.collection.aggregate(
{$group : {_id : "$category"} },
{$group: {_id:1, count: {$sum : 1 }}})
这个查询一开始可以正确地给出计数,但是随着数据库的不断增长,查询执行时间越来越长。是否有其他更快的方法来获取计数?
db.collection.distinct('category').length
来替代?distinct
可以使用索引,但$group
不能。 - JohnnyHK