我想计算一个字段中所有不同值的数量。在mongoengine中没有“annotate()”可以使用,那么我怎么能计算数字并按数字排序
我想解决这个问题的唯一方法是使用“distinct()”找出不同的值,然后使用“count()”计算每个值,这是实现我想要的结果的愚蠢方法
你还有其他方法吗?
我想计算一个字段中所有不同值的数量。在mongoengine中没有“annotate()”可以使用,那么我怎么能计算数字并按数字排序
我想解决这个问题的唯一方法是使用“distinct()”找出不同的值,然后使用“count()”计算每个值,这是实现我想要的结果的愚蠢方法
你还有其他方法吗?
MongoEngine 有一些地图减少助手应该可以满足您的需求。Queryset 方法item_frequencies
[1] 将满足您的需求。新的聚合框架没有任何特殊支持,但将来可能会添加支持。
示例用法:
BlogPost.objects.item_frequencies('tags')
MongoEngine 本身并没有特殊的方法来实现这一点,但是 MongoDB 2.2 聚合框架允许您对文档进行计数,按字段分组。我建议直接使用 PyMongo 的聚合方法和聚合管道来执行此查询:
http://api.mongodb.org/python/current/examples/aggregation.html