gpt4 book ai didi

python - 在 pymongo 中使用查找

转载 作者:行者123 更新时间:2023-12-01 08:38:56 32 4
gpt4 key购买 nike

我想在 Python 中对 mongoDB 使用 .find() :

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27000')
db = client['responsi']
cursor = db['produk']

for x in cursor.find({"pricing.pct_savings":{"$gt":25}}).sort({"pricing.pct_savings":-1}):
print(x)

但是,它显示这样的错误:

Traceback (most recent call last):
File "Find.py", line 7, in <module>
for x in cursor.find({"pricing.pct_savings":{"$gt":25}}).sort({"pricing.pct_savings":-1}):
File "G:\PROGRAM FILES\Python\lib\site-packages\pymongo\cursor.py", line 708, in sort
keys = helpers._index_list(key_or_list, direction)
File "G:\PROGRAM FILES\Python\lib\site-packages\pymongo\helpers.py", line 69, in _index_list
raise TypeError("if no direction is specified, "
TypeError: if no direction is specified, key_or_list must be an instance of list

如何解决这个问题?谢谢你!抱歉,我的英语成绩很差。

最佳答案

与 mongo shell 不同,pymongo 将 keydirection 作为排序方法(或列表,但这是与您无关的另一种形式)的参数目前,我也会展示它)
因此,您的查询实际上应该是 cursor.find({"pricing.pct_ savings":{"$gt":25}}).sort("pricing.pct_ savings", pymongo.DESCENDING)

另一种形式获取字段名称和方向的元组列表,并允许您按多个字段排序,例如collection.find().sort([('my_field_1',pymongo.DESCENDING) , ('my_field_2',pymongo.ASCENDING)])

请参阅此处的相关文档 https://api.mongodb.com/python/current/api/pymongo/cursor.html?highlight=sort#pymongo.cursor.Cursor.sort

您可以在此处找到 ASCENDINGDESCENDING 常量 https://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.ASCENDING

顺便说一句(与您原来的问题无关)db['produk'] 实际上是一个集合,而不是游标,因此最好将其称为集合,而不是游标。光标是 find() 返回的内容

关于python - 在 pymongo 中使用查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53577428/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com