问题标签 [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.
mongodb - pymongo 删除/更新命令返回
当我们在 mongodb 中删除某些内容或更新某些内容时,它会返回结果
我想知道如何访问 pymongo 中的这些字段以检查更新/删除是否成功或失败的天气。
mongodb - mongodb锁预防
在查看了 mongodb 文档和 pymongo API 一段时间后,我仍然不清楚我采取什么路线作为前进的方向(现在比我开始时更加困惑)。我的问题与锁有关……与其说我已经测试过并发现存在主要的并发问题,但我不想在事后遇到它们。
我有一个具有多个函数的 tkinter 脚本,它们都需要访问同一个文档集合,并且它们中的大多数都访问该集合中的同一个文档。
和被调用的子进程(在单独的脚本中),可能有多个实例:
那么,在这种情况下,只在每个函数中使用 client.close() 就足够了吗?
同样在 while 循环中:
这样就足够了,还是在这种情况下我应该寻找分片?或者我应该回到 SQL !
Mongodb 3.0.6 32 位,pymongo 3.03,python 2.7。
python - Pymongo:如何确保仅从副本集中所需的主机(尤其是 SECONDARY)进行连接和读取
背景
mongoDB 生产集群(未分片)3 台主机。它们属于副本集 rs0
- H1 - 初级
- H2 - 中学
- H3 - 中学
我正在尝试使用pymongo编写python脚本。这是一个生产集群,我希望脚本仅从H3 辅助副本集读取,以免对主副本造成负担,并使其免费用于常规活动。数据将从2000 个文档批次中名为“设备”的集合中获取。这应该会进一步减少读取操作的开销。
相关代码
还尝试通过提及集群中的所有主机以稍微不同的方式创建客户端,如下所示
问题
据我了解,上述客户端将只从辅助副本集中读取。但是当我运行脚本并查看云管理器时,主要的 H1 显示页面错误从 ~15-20 增加到 ~600 并急剧增加。
环境
- Mongo DB 3.0.3(MMAPv1 存储引擎)
- Python 2.7.9
- Pymongo 3.0.3
- 操作系统 亚马逊 Linux
django - 在 Django+uWsgi 项目中运行时,PyMongo 查找查询返回空/部分光标
Django
我们使用& mongoDB
(PyMongo
驱动程序)开发了一个 REST API 。问题是,在对 API 端点的某些请求中,PyMongo
游标返回的部分响应包含的文档比它应该包含的要少(但它是一个完全有效的 JSON 文档)。
让我用一个我们的观点的例子来解释它:
我们确信有超过 8000 个文档与查询匹配,但在某些调用中,我们得到的结果少于 24 个(甚至为零)。我们调查的第一个问题是我们的代码中有多个MongoClient
定义。通过解决这个问题,问题的发生次数减少了,但我们仍然在很多电话中遇到了这个问题。
在所有这些调查之后,我们设计了一个测试,我们同时向服务器发出 16 个异步请求。通过这种方法,我们可以重现问题。在这 16 个请求中,有 6-8 个请求有部分结果。运行此测试后,我们将uWsgi
进程数减少到 6 个并重新启动服务器。所有结果都很好,但在服务器上再次施加重负载后,问题又开始了。此时,我们重新启动了 uwsgi 服务,一切正常。通过最后一个实验,我们现在有了一个线索,当 uwsgi 服务开始运行时,一切正常,但经过一段时间和高负载后,服务器又开始返回部分或空的结果。我们最近的调查是使用python manage.py
with运行 APIDEBUG=False
,在这种情况下一段时间后我们又遇到了问题。
我们无法弄清楚问题是什么以及如何解决它。我们能想到的一个原因是 Django 在完成之前关闭了 pymongo 的连接。因为返回的结果是一个有效的 JSON。
我们的堆栈是:
- nginx(未启用缓存)
- uWsgi
- MemCached(在调试过程中禁用)
- Django(python 3 上的 v1.8)
- PyMongo (v3.0.3)
非常感谢您的帮助。
更新:
蒙哥版本:
- 我们正在运行单个
mongod
实例。没有分片/复制。 我们正在使用此代码段创建连接:
con = MongoClient('localhost', 27017)
更新 2
python - ImportError:无法导入名称 MongoClient
我刚第一次安装和pymongo,马上就遇到了麻烦。在 MongoDB 网站上运行基本python 教程中的示例时,我立即得到以下响应:
代码如下所示:
我正在运行 python 2.7 和 pymongo 3.0.3
python - 使用 python GridFS 检索文件元数据
我正在使用 Python 访问 GridFS,并且希望同时访问文件及其元数据。
Python 版本是 2.7,MongoDB 版本是 3.0.7。操作系统是 Ubuntu 14.04。
该文件存储如下:
并检索如下:
我期待 .metadata 成为元数据字典。retrieved_file._file
存储我正在寻找的元数据以及其他元数据,但我认为访问以下划线开头的任何内容充其量只是一种黑客攻击。
那么,如何获取我最初设置的文件和元数据呢?
python - 如何在不迭代的情况下计算 pymongo 聚合游标
我想在 pymongo 3.0+ 版中获取聚合游标中的记录总数。有没有办法在不遍历游标的情况下获得总计数?
有没有办法跳过上面的迭代?
python - 在 pymongo 中使用 explain("executionStats") 进行查询
我对包括解释在内的请求有疑问。例如,以下请求效果很好:
解释方法的项目列表打印得很好。
但是,当我只需要 explain() 方法中的 executionStats 项时,请求如下:
我有以下错误:
有谁知道它是关于什么以及如何解决这个问题?
泰
mongodb - 检查游标是否超时
是否可以检查数据库上打开的游标是否已超时?如果没有实际调用,该.alive
属性似乎不会更新next()
,但这也会导致光标位置前进,这是我不想要的。
背景:我正在将数据延迟加载到 Web 客户端,并且我将光标保持在服务器端打开,以便客户端可以从中请求更多数据。我让 Mongo 让游标超时,因为这对于用例来说已经足够了,并且简化了游标的有保证的垃圾收集。但是,这让我管理打开的游标引用 Python 端,我正在使用偶尔的垃圾回收周期。在这个周期中,我想扔掉任何已经在 Mongo 这边超时的游标。
mongodb - 如何在 pymongo 管道中创建日期时间对象?
我有一些代码在其中设置了以下管道:过滤器集合、项目年和月、按年和月分组,然后以 YYYY-MM-01 之类的日期时间对象结束。
示例文档:
示例代码:
目标: