问题标签 [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.

0 投票
1 回答
2882 浏览

python - PyMongo $addToSet 不工作

所以我正在使用pymongo==3.2.1Mongo 3.2但由于某种原因我的$addToSet(以避免重复)无法正常工作。

我确保我的checked_on时间戳匹配,例如ISODate("2016-04-21T00:00:00.000Z")

我的结构是这样的:

我都试过了:

但是重复出现,我做错了什么?

0 投票
0 回答
186 浏览

pymongo - 如何在 pymongo 查询类`find()`中启用`projection`?

find()官方链接

我试图将投影设置为列表或字典,但都不能限制 find() 的输出。如何正确设置投影?

0 投票
1 回答
563 浏览

python - 如何在 Pymongo 3.2+ 中获取 replSetGetStatus?

我目前正在转换 pymongo 3.2+ 驱动程序的更高级别的 api。该代码在 pymongo 2+ 到 3.1 中工作。我正在尝试检索管理数据库的 replSetGetStatus。

据我了解,pymongo 3.2+ 不允许查询管理数据库。我用谷歌搜索了一下,几乎没有找到关于这个主题的信息。提示我需要使用 db.runCommand() 方法,但我不知道该怎么做。

我的旧 pymongo 2+ - 3.1 代码。

我将如何将该行代码转换为与 pymongo 3.2+ 一起使用?

0 投票
1 回答
4339 浏览

mongodb - 带有 upsert 的 insert_many - PyMongo

我有一些这样的数据:

数据库中的当前数据:

总是收到唯一的行,但不确定它们中的任何一个是否已经存在于 DB 中(例如上面的情况)。我想根据两种类型的要求更新它们。

要求 1

如果已经存在,请不要更新行。_id这在某种程度上很容易:

执行上述将插入2nd行但不会更新第一行;但它也引发了异常。

1.有没有更好的方法来做上述操作(用于批量插入)?

要求 2

这类似于update_if_exists&insert if not exists组合。所以以下数据:

应该更新该行_id=1并将该2nd行插入数据库中。

问题是我一次得到数千行,并且不确定逐一检查和更新是否有效。

2.这个要求在 MongoDB 中是否可能不需要迭代每一行并且尽可能少的操作?

0 投票
0 回答
402 浏览

mongodb - 如何在 Mongodb 中插入包含整数字段的文档,并使用 pymongo 进行文档验证?

我正在尝试在 MongoDB 中插入一个使用 pymongo 进行文档验证的文档。它有一个类型验证器来检查数据类型。

当我使用 mongo shell 插入文档时,我可以使用NumberInt()在整数字段中插入数据。

如何使用 pymongo 插入带有整数字段的文档?

0 投票
1 回答
7371 浏览

python - Pymongo错误服务器超时

我使用 pip 安装了最新版本的 Pymongo 3.2.2。此外,我使用 Python 3.4 Anaconda。我正在尝试做一个简单的插入。这是我的代码:

这是我在 Traceback 底部收到的消息:

我该如何解决这个问题,以便我可以将记录插入 MongoDB?

0 投票
2 回答
4423 浏览

python - 如果我使用变量作为值,则在 python 中进行 Mongo 查询

我正在尝试使用以下查询从 mongo 集合中查找文档。db.collection_name.find({"id" : Id})其中 Id 是作为输入的变量。但它不起作用。如果我像这样对值进行硬编码,db.collection_name.find({"id" : "1a2b"})它就可以工作。“id”是字符串类型,我正在使用 pymongo 访问 mongo DB。

代码 :

0 投票
2 回答
1864 浏览

mongodb - call custom python function on every document in a collection Mongo DB

I want to call a custom python function on some existing attribute of every document in the entire collection and store the result as a new key-value pair in that (same) document. May I know if there's any way to do that (since each call is independent of others) ?

I noticed cursor.forEach but can't it be done just using python efficiently ?

A simple example would be to split the string in text and store the no. of words as a new attribute.

But it seems like setting a new attribute in a document based on the value of another attribute in the same document is not possible this way yet. This post is old but the issues seem to be still open.

0 投票
2 回答
2566 浏览

python - python 3.6 mongoengine 无法捕获异常

我有一个 django 1.9 项目,并且正在使用 mongoengine 连接到 mongodb 实例。

我有一个模型如下:

一个测试类:

问题是我无法捕捉到DuplicateKeyError执行:

我尝试了全局尝试,但它仍然使代码崩溃并出现DuplicateKeyError异常:

有关信息,我正在使用以下依赖项:

Django==1.9.7
mongoengine==0.10.6
pymongo==3.2.2

参考:在重复键错误上获取重复值

任何帮助都将是非常可观的。谢谢。

0 投票
2 回答
70 浏览

python - 在 mondb 客户端中更新正常,但在 Python 中 KO

mongodb/python/pymongo 中的新手。我的 mongodb 客户端代码工作正常。这里是 :

当contract_name(来自测试集合)等于current_observation.observation_location.city(来自meteo集合)时,这会将temp_c_meteo列添加到我的测试集合中的所有文档中。这就是我想要的!

但是,我希望这在 Python 中也能正常工作。Python 2.7-pymongo 2.6.3 已安装。还有 Python 2.4.6(64 位)和 3.4.0(64 位)。

这是 Python 脚本的一部分:

我得到了错误:==> [06/21/2016 10:51:03 AM] [警告]:'Collection' 对象不可调用。如果您打算在 'Collection' 对象上调用 'update_many' 方法,它会失败,因为不存在这样的方法。

我读到这个问题可能与某些 pymongo 版本有关(“不推荐使用保存和更新方法”,这就是我尝试使用 update_many 的原因)但不确定如何使这项工作?谢谢