Ass*_*vie 3 mongodb pymongo aggregation-framework
MongoDB 的文档似乎建议,为了对aggregate调用的结果进行排序,您应该指定一个字典/对象,如下所示:
db.users.aggregate(
{ $sort : { age : -1, posts: 1 } }
);
Run Code Online (Sandbox Code Playgroud)
这应该按顺序排序age然后按posts.
我该怎么办,如果我想排序posts,然后age?更改键的顺序似乎没有任何效果,可能是因为这是JS对象的属性.换句话说,排序似乎总是根据键的词序,这似乎是一个奇怪的设计选择...
我错过了什么吗?有没有办法指定要排序的有序键列表?
来自文档:
由于python词典不维护顺序,你应该使用
SON或collections.OrderedDict需要显式排序,例如"$ sort"
from bson.son import SON
db.users.aggregate([
{"$sort": SON([("posts", 1), ("age", -1)])}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |