允许\u磁盘\u在PyMongo中不使用光标

2024-10-08 18:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> db = client['cvedb']
>>> db.list_collection_names()
['cpeother', 'mgmt_blacklist', 'via4', 'capec', 'cves', 'mgmt_whitelist', 'ranking', 'cwe', 'info', 'cpe']
>>> colCVE = db["cves"]

>>> cve = colCVE.find().sort("Modified", -1) # this works

>>> cve_ = colCVE.find().allow_disk_use(True).sort("Modified", -1) # this doesn't work
AttributeError: 'Cursor' object has no attribute 'allow_disk_use'
>>> cve_ = colCVE.find().sort("Modified", -1).allow_disk_use(True) # this doesn't work
AttributeError: 'Cursor' object has no attribute 'allow_disk_use'
>>> cve.allow_disk_use(True) # this doesn't work
AttributeError: 'Cursor' object has no attribute 'allow_disk_use'
>>>

我想使用allow_disk_use()方法,但得到上述错误。我的MongoDB服务器是4.4.1,pymongo也是最新版本

我提到了{a1}和{a2},但我不明白我做错了什么。不应该使用Cursor对象吗?如果有人能解释正确的方法以及为什么不起作用,那就太好了


Tags: truedbusefindthissortcursorwork
2条回答

除了beachy的回答,升级到最新版本(3.11)后, 给出AttributeError(问题中提到的)的查询也恰好工作得很好

在pymongo中,您可以将allowDiskUseaggregate结合使用:

cve_ = colCVE.aggregate([{"$sort": {"Modified": -1}}], allowDiskUse=True)

从3.11版开始,您还可以将其传递给^{

cve_ = colCVE.find(allow_disk_use=True).sort("Modified", pymongo.DESCENDING)

相关问题 更多 >

    热门问题