我在PyMongo中使用以下代码:
db.collection.group(["myField"], {}, {"count":0},"function(o, p){p.count++}" )
哪个正确返回我需要的数字,但搜索需要30秒才能完成。索引速度会提高吗?我发现很难知道字段是应该还是不应该被编入索引,因为我读了一篇文章,说不要索引太多,否则一切都会变慢,所以我没有索引任何内容。
答案 0 :(得分:0)
请参阅: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} }])
答案 1 :(得分:0)
"组"很慢,因为它必须为它遇到的每个文档执行Javascript函数。 For this reason, the MongoDB manual says "group" is deprecated."聚合"已取代" group"作为一种快速的现代方式来完成这样的任务:
for result in c.aggregate([{
"$group": {
"_id": "$myField",
"count": {"$sum": 1}
}
}]):
print("%s: %d" % (result["_id"], result["count"]))