我有这样的一种:
db.getCollection('TEST').aggregate([
{'$sort': {'create_time': 1, 'status': 1}}
])
它有2个排序字段,mongo将首先排序create_time
字段,然后排序status
。但是在python dict
中排序混乱,有时会先排序create_time
,有时候排序status
create_time
首先,问题是如何确保它始终先对def createRobotDict(self,obj):
return ast.literal_eval(obj)
进行排序?
答案 0 :(得分:0)
您可以简单地进行排序,而不是aggregate
这是模式:
.sort([("field1", pymongo.ASCENDING), ("field2", pymongo.DESCENDING)])
您可以链接这些功能,以便您可以限制文档首先按过滤器排序:
db.getCollection('TEST').find({ field1: <value>, field2: <value> ... }).sort([("field3", pymongo.ASCENDING), ("field4", pymongo.DESCENDING)])
作为旁注:.find()和.sort()中的字段不需要不同。