簡體   English   中英

MongoDB計數不同速度

[英]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"]))

請參閱有關聚合的MongoDB手冊部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM