[英]MongoDB Count Distinct Speed
我在PyMongo中使用以下代碼:
db.collection.group(["myField"], {}, {"count":0},"function(o, p){p.count++}" )
可以正確返回我需要的數字,但搜索需要30秒才能完成。 索引編制會加快速度嗎? 我發現很難知道是否應該對字段建立索引,因為我讀了一篇文章,該文章說不要建立太多索引,否則一切都會變慢,因此我沒有建立任何索引。
參見: https : //docs.mongodb.com/manual/reference/method/db.collection.count/
db.collection.count({"myField": {"$exists": True} })
參見: https : //docs.mongodb.com/manual/reference/operator/aggregation/sum/#grp._S_sum
db.collection.aggregate([{"$group": {"_id": "myField", "count": {"$sum":1} }])
“ group”很慢,因為它必須為遇到的每個文檔執行Javascript函數。 因此,MongoDB手冊指出“組”已被棄用。 “ aggregate”代替“ group”是一種快速的現代方式來執行以下任務:
for result in c.aggregate([{
"$group": {
"_id": "$myField",
"count": {"$sum": 1}
}
}]):
print("%s: %d" % (result["_id"], result["count"]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.