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