问题标签 [pymongo-3.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pymongo 3如何使用一个socket连接MongoDB?
我想在多线程中使用一个套接字连接到 MongoDB。
代码只有一个套接字,PyMongo 的版本是 2.2rc。
connect
选项已添加。、
start_request
和方法以及选项都被in_request
删除。end_request
auto_start_request
该
copy_database
方法已删除,请参阅copy_database 示例 以获取替代方法。该
MongoClient.disconnect()
方法被删除;它是 的同义词close()
。
布尔值connect
不起作用。
mongodb - pymongo - TypeError:文档必须是 dict、bson.son.SON 或其他继承自 collections.MutableMapping 的类型的实例
我正在写入数据以MongoDB
使用pymongo
.
执行写操作时收到此错误。
如果我打印数据,并通过insert_one()
调用复制它,则信息是用 shell 写入的。我已经尝试将变量转换为str,但我不确定它是如何格式错误的,就像我复制打印行并执行操作一样,它被添加了。这让我怀疑 JSON 对象的格式没有问题,但它的编码或其某种变体,或者返回的 JSON 对象的小语法。
python - 为什么 PyMongo 3 给出 ServerSelectionTimeoutError?
我在用着:
- Python 3.4.2
- PyMongo 3.0.2
- mongolab 运行 mongod 2.6.9
- uWSGI 2.0.10
- 樱桃派 3.7.0
- nginx 1.6.2
uWSGI 启动参数:
我设置了我的 MongoClient 一次:
我尝试将 JSON 字典保存到 MongoDB:
它通过执行与 mongodb 相同的代码路径的单元测试来工作。但是,当我使用 HTTP POST 通过 CherryPy 和 uWSGI 执行时,我得到了这个:
为什么我在通过 CherryPy 和 uWSGI 运行时会看到这种行为?这可能是 PyMongo 3 中的新线程模型吗?
更新:
如果我使用 CherryPy 内置服务器在没有 uWSGI 和 nginx 的情况下运行,则insert_one()
可以。
更新 1/25 下午 4:53 EST:
在 PyMongo 中添加一些调试后,似乎topology._update_servers()
知道服务器“myserver-a.mongolab.com”的 server_type = 2。但是server_description.known_servers()
,服务器“myserver.mongolab.com”的 server_type = 0
这导致以下堆栈跟踪:
python - pymongo==3.0.3: ImportError: No module named connection
我刚刚升级到pymongo==3.0.3
via pip install --upgrade pymongo
,我被淹没了ImportError
:
performance - 有没有办法跳过 Pymongo 3.0 中 insert_many 的现有 _id?
我正在更新一个包含数百万个文档且 _id 冲突少于 10 个的数据库。
我目前正在使用 PyMongo 模块通过 insert_many 进行批量插入:
- 查询db看_id是否存在
- 如果 _id 不存在,则将文档添加到数组中
- 使用 insert_many 插入数据库,一次插入 1000 个文档。
几百万个文档中只有大约 10 个冲突,我目前正在为每个 _id 查询数据库。我认为如果我可以减少查询过程,我可以将整体插入时间减少一两天。
是否有类似于 upsert 的东西,如果它不存在,它可能只插入一个文档?
python - 使用 pymongo 和烧瓶将数据插入
当我单击提交按钮时,我收到一条错误消息:
“TypeError:'Collection' 对象不可调用。如果您打算在 'Database' 对象上调用 'insert' 方法,它会失败,因为不存在这样的方法。”
这是我的 signin.py 代码:
我的 html 文件代码在这里:
mongodb - mongodb:用一个或多个元素替换数组中的元素
给定一个集合,例如:
我想用“樱桃”和“日期”替换所有“香蕉”实例。所以结果集合将是:
我通过 pymongo 使用的一种方法:
我正在寻找一种更有效的方法,使用更新命令 $pull/remove 匹配的元素并使用 $each 修饰符 $push 来插入新元素。但是我很难找到要执行推送操作的数组的 $position。另一个需要注意的是,我想为新水果保留旧水果的位置。即第一个新水果将与旧水果具有相同的位置。
python - 通过索引获取数组的不同聚合元素
我得到了输出:
如何仅使用数组的第二个元素执行此操作?我需要类似的东西:
mongodb - 在 python 中为 mongodb 编写 shell 脚本时出错在用户 ID 调用的情况下
它应该返回该特定值的用户 ID 计数,但它会弹出错误为
名称错误:名称 objectid 未定义。
当我尝试使用时:
我有同样的错误
sockets - 改进 PyMongo socket recv
我使用 cProfile 在我的代码中进行了一些分析(使用 PyMongo 3.0.3 和大量的批量操作),结果发现很多时间都花在了套接字上:
14006 68.823 0.005 68.823 0.005 {method 'recv' of '_socket.socket' objects}
我找到了这个有点相关的答案,解决方案很简单。有什么方法可以将TCP_NOWAIT
选项传递给PyMongo
而无需更改库代码?