gpt4 book ai didi

mongodb - Pymongo:迭代集合中的所有文档

转载 作者:可可西里 更新时间:2023-11-01 09:26:00 25 4
gpt4 key购买 nike

我正在使用 PyMongo 并尝试遍历我的 MongoDB 集合中的(1000 万个)文档并仅提取几个键:“名称”和“地址”,然后将它们输出到 .csv 文件。

我无法找出使用 find().forEach() 执行此操作的正确语法

我正在尝试类似的解决方法

cursor = db.myCollection.find({"name": {$regex: REGEX}})

其中 REGEX 将匹配所有内容 - 结果为“Killed”。我也试过了

cursor = db.myCollection.find({"name": {"$exist": True}})

但这也不起作用。

有什么建议吗?

最佳答案

I cannot figure out the right syntax to do it with find().forEach()

cursor.forEach()不适用于 Python,它是一个 JavaScript 函数。您将必须获得一个游标并对其进行迭代。参见 PyMongo Tutorial: querying for more than one document ,你可以在哪里做:

for document in myCollection.find():
print(document) # iterate the cursor

where REGEX would match everything - and it resulted in "Killed".

不幸的是,这里缺乏信息来调试“Killed”的原因和内容。尽管如果您想匹配所有内容,您可以声明:

cursor = db.myCollection.find({"name": {$regex: /.*/}}) 

鉴于该字段 name 包含字符串值。尽管使用 $exists 检查字段 name 是否存在比使用正则表达式更可取。

同时使用$exists上面示例中的运算符不正确。您在 $exists 中缺少一个 s。同样,不幸的是,我们并不知道很多关于“不起作用”意味着什么有助于进一步调试的信息。

如果您正在为 Python 练习编写此脚本,我建议您复习一下:

您还可以在 MongoDB University 注册免费在线类(class)对于M220P: MongoDB for Python Developers .

但是,如果您只是想完成从集合中导出 CSV 的任务。作为替代方案,您可以只使用 MongoDB 的 mongoexport .支持:

参见 mongoexport usage获取更多信息。

关于mongodb - Pymongo:迭代集合中的所有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40899091/

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