python - MongoDB - 计数已弃用

标签 python mongodb pymongo

我正在做一个 MongoDB 查询,我需要循环遍历我的结果并计算结果的长度以查看是否返回了一个空结果。

这是我尝试过的:

Record = db.mycol.find({"datetimeraw": dt.now().strftime('%Y%m%d%H%M')})

RecordLen = Record.count()
print('LEN IS':RecordLen)

for x in Record:
    print(x)

此代码有效,但当我使用它时出现以下错误:DeprecationWarning: count is deprecated。请改用 Collection.count_documents。 问题是我不能使用 count_documents(),因为它将返回一个整数而不是我可以循环的结果列表;在这种情况下,我将不得不进行两个查询:一个用于计数,一个用于检索结果,我想避免这种情况。有什么办法可以做到这一点,或者我只能使用已弃用的功能吗?

最佳答案

在 MongoDB 中,.find() 总是会返回一个游标,它可以是空的 [] 或者文档/字典数组 [{}, {}].

作为.count()可以通过三种方式使用:

/** 1. Queries all docs based on filter and then returns no.of docs matches with query */
db.collection.find( { queryFilter } ).count()

/** 2. Returns no.of docs */
db.collection.count()

/** 3. Returns a cursor `results` */ 
results = db.collection.find( { queryFilter } )
results.count()

所以前两个选项类似于countdocuments()estimateddocumentcount() (返回一个数字)但是因为你想返回文档并获得类似于 cursor.count() 的光标计数然后您可以使用 len() 方法在代码中完成此操作:len(list(results))

关于python - MongoDB - 计数已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62536920/

相关文章:

arrays - Clickhouse 中外部字典中的数组声明和访问

python - 如何使用 PyMongo 迭代和更新文档?

mongodb - 为 Web 应用程序在 MongoDB 集合上创建索引的推荐方式/位置

python - Tox 将错误版本的 pip 安装到它的虚拟环境中

python - 如何有效地从python中的列表中删除相同长度的元素

python - 图像的轮廓轴

python - 如何在 ubuntu 上安装 facebook watchman?

ruby - 如何获取mongo中嵌入数组的大小?

javascript - Node.js MongoDB collection.find().toArray 什么都不返回

python - 如何在 MongoDB 字段中存储不同语言(非英语)的数据并检索相同的数据?