对于PyMongo,当我try 检索按"编号"和"日期"字段排序的对象时,如下所示:

db.test.find({"number": {"$gt": 1}}).sort({"number": 1, "date": -1})

我得到了这个错误:

TypeError: if no direction is specified, key_or_list must be an instance of list

我的排序查询有什么问题?

推荐答案

sort应该是键方向对的列表,即

db.test.find({"number": {"$gt": 1}}).sort([("number", 1), ("date", -1)])

之所以必须是一个列表,是因为参数的顺序很重要,而且在Python中,dict不是按顺序排列的<;3.6

Mongodb相关问答推荐

MongoDB合并按键更新值的对象数组

MongoDB - 将数组元素转换为新字段

MongoDB 在一个聚合中包含多个组

mongodb - 查找包含至少 3 个填充数组的记录

TypeError:Cannot read property '_id' of undefined

从 node.js 的 mongodb 集合中删除文档

mongoose中的 required是什么意思?

如何将 MongoDB 集合中的 _id 字段更改为 User_id?

使用 Flask-pymongo 扩展通过 _id 在 MongoDB 中搜索文档

MongoDB映射/减少多个集合?

MongoDB:按标签获取文档

在 Mongo 中存储嵌套类别的最有效方法?

mongodb中类型不相等的查询

如何获取 Mongoid 文档的所有字段名称?

mongoose得到`TypeError: user.save is not a function` - 出了什么问题

如何在 MongoDB 聚合查询中使用 $hint?

如何从 Mongoose 模型对象中获取集合名称

填充mongoose后查找

Mongoose:Model.create 和 Collection.insert 有什么区别

Mongoose upsert 不创建默认模式属性