问题标签 [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 - 点是否在多边形中或不在mongoDB中
我有一个 mongodb 数据库,其中包含以下形式的纬度和经度:
例如 {a:1,latitude:1.0,longitude:2.0,b:2} 等。
我希望检查纬度经度对是否在坐标中存在。
我已在
也:
这些似乎不起作用。我想要的是一个真/假值,无论 [doc["Longitude"],doc["Latitude"]] 是否存在于多边形中。
python - Pymongo $in 查询不工作
在 Pymongo$in
查询中看到一些奇怪的行为。查找满足以下查询的记录:
查询不返回任何记录。
如果我将它更改为 find_one,它会返回 Lake Sturgeon 的最后一个值。该字段是一个包含一个值的文本。所以我正在寻找与白鲟或湖鲟相匹配的记录。
它在 Mongo Shell 中运行良好,如下所示:
这是shell的结果
我在这里错过了什么吗?
mongodb - pymongo find().hint('index') 不使用索引
我正在尝试使用索引来访问集合中的文档,该集合使用 Python 3.5 中的特定索引以及 Pymongo 3.3.0 和 Mongodb 3,2。我在每个文档中创建了一个名为的字段sequence
,其中包含一个定义文档加载顺序的数字。我在该字段上创建了一个索引,并'sequence'
使用以下命令为索引命名:
用于加载文档的代码是:
doc 中返回的文档不包含序列号 1,也不是加载到 Mongodb 中的第一个文档。我应该如何确保根据每个文档中字段中的值以升序返回'sequence'
文档?
编辑:
Sort
不能使用,因为集合太大,大约 16GB 大小。该文档似乎声明使用索引将按照索引中键的顺序返回数据。如果不是这样,是否不能使用索引来定义集合中文档的检索顺序?
python - 如何在pymongo连接中的密码中转义@?
我的问题是关于如何通过 pymongo 验证 mongodb 身份验证的用户名密码的规范?.
我正在尝试使用 PyMongo 3.2.2 和包含用户和密码的 URL 连接到 MongoDB 实例,如MongoDB Docs中所述。不同之处在于我使用的密码包含一个“@”。
起初我只是尝试连接而不转义,如下所示:
前缀 = 'mongodb://'
用户 = '用户:passw_with_@_'
后缀 = '@127.0.0.1:27001/'
conn = pymongo.MongoClient(前缀 + 用户 + 后缀)
自然我得到了以下错误:
所以我尝试使用urllib.quote()转义 user:pass 部分,如下所示:
前缀 = 'mongodb://'
用户 = urllib.quote('user:passw_with_@_')
后缀 = '@127.0.0.1:27001/'
conn = pymongo.MongoClient(前缀 + 用户 + 后缀)
但后来我得到了一个:
(重要的是,使用 GUI MongoDB 管理工具(Robomongo,如果这很重要的话)我可以使用(真实)地址和凭据连接到 MongoDB。)
在上面的代码中打印用户变量会生成一个'user:passw_with_%40_'
字符串(即 '@' 变为 '%40'),根据维基百科,这是预期的转义。
我什至尝试使用单反斜杠和双反斜杠 ( user = 'user:passw_with_\\@_'
and user = 'user:passw_with_\@_'
) 转义 @,但那些因 InvalidURI 异常而失败。
TL;博士;
我的问题是:如何在 MongoDB URL 的密码部分中转义“@”?
mongodb - 如何使用 pymongo 为 Mongodb 设置连接超时?
我尝试将connectTimeoutMS
和设置socketTimeoutMS
为较低的值,但脚本超时仍需要大约 20 秒。我没有正确使用这些选项吗?我希望脚本在 5 秒后退出。
python - 如何提高 pymongo 查询的性能
我继承了一个旧的 Mongo 数据库。让我们关注以下两个集合(删除了大部分内容以提高可读性):
收藏用户
集合条目(一个用户对多个条目):
如您所见,两者之间没有 DBRef。
我想做的是计算条目总数,以及在给定日期之后更新的条目数。
为此,我使用了 Python 的 pymongo 库。下面的代码让我得到了我需要的东西,但是速度非常慢。
在我的笔记本电脑上运行这两个查询大约需要 0.83 秒db.entry.find
,而在 AWS 服务器(不是 MongoDB 服务器)上运行这两个查询需要 0.54 秒。
拥有约 20000 个用户需要痛苦的 3 个小时才能获取所有数据。这是您希望在 Mongo 中看到的那种延迟吗?我能做些什么来改善这一点?请记住,MongoDB 对我来说相当新。
python - 如何使用pymongo命令updateUser
我如何使用 pymongo 命令 updateUser ?
我尝试了以下命令,但没有成功:
和
退货
谢谢。
mongodb - MongoDB 是否支持更新表达式中的逻辑运算符?
例如,我的代码如下
我得到一个例外OperationFailure: Unknown modifier: $and
。似乎 MongoDB 不支持$and
更新表达式中的逻辑运算符。可以?
更新(回答@chridam):
上面的代码只是一个例子,它想展示一种情况:找到一个具有指定的用户文档uid
,设置它的user_id
,并且device_id
只在device_id
不等于某个值时设置它,例如历史值。
mongodb - 如何使用聚合管道计算子文档中的键数?
假设我有这样的文件:
我想计算集合中的答案记录数。显然,该文档提供了两个答案记录,即“1”和“3”。所以,我的问题是如何使用聚合管道来实现这一点。