问题标签 [azure-cosmosdb-mongoapi]
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.
azure-cosmosdb - CosmosDB API for Mongo 对待多键唯一索引的方式与 MongoDB 不同
我正在尝试将 Azure CosmosDB 放入最初使用 MongoDB 的项目中。我遇到了一个问题,即唯一索引在 CosmosDB 和 MongoDB 中的处理方式不同,我找不到任何建议我应该看到问题的文档。
为了说明这一点,我使用mongo
cli 连接到我的 CosmosDB 和我的 MongoDB(版本 3.6)并运行以下命令来创建一个集合,定义一些唯一的多键索引,然后插入一些文档:
以上适用于 MongoDB 3.6。插入第二个文档时,它会针对 CosmosDB 实例生成错误,因为...
它似乎在检查study
是唯一的,而不是两者的组合study
withid
或study
with path
。
这是 CosmosDB 的 MongoDB API 的已知限制吗?或者有什么我可以做的,没有代码更改,会给我预期的结果?
仅供参考,我已经为 CosmosDB 打开了以下两个预览功能:
- 启用“聚合管道”
- 启用“MongoDB 3.4 有线协议(版本 5)”
azure-cosmosdb - 慢速 CosmosDB Mongodb 查询
我正在使用 MongoDB api 访问 Azure 上的 CosmosDb。我收集了几千份文件。
它们的形状是这样的:
我需要在 $in 查询中使用可能大量的“id”来查询文档。查询很简单,
我有一个非唯一索引(可能应该是唯一的):
结果是包含 1000 个项目的查询需要 20 秒或更长时间才能返回。如果我只是简单地获得所有文件:
db.MyCollection.find({});
结果不到一秒钟即可返回。
此外,如果我对本地本地 Mongo 实例运行相同的测试,则两个查询都会在一秒钟内返回。
我在 Azure/CosmosDb 方面缺少什么可能导致所有这些减速?
python - Python3 上 Pymongo 的 SSL 握手问题
尝试连接到 Azure CosmosDB mongo 服务器会导致 SSL 握手错误。
我正在使用Python3
并Pymongo
连接到我的 Azure CosmosDB。如果我使用 Python27 运行代码,则连接工作正常,但在使用 Python3 时会导致以下错误:
运行它Python3
会导致以下错误:
pymongo.errors.ServerSelectionTimeoutError: SSL 握手失败: backendstore.documents.azure.com:10255: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:749)
这是我运行相同代码时的成功输出Python27
:
数据库服务器状态: { "_t": "OKMongoResponse", "ok": 1 } Collection(Database(MongoClient(host=['backend.documents.azure.com:10255'], document_class=dict, tz_aware=False, connect =True, ssl=True, replicaset='globaldb'), u'result_DB'), u'file_result')
azure - Azure cosmos DB 文档大小约为 30KB 时速度慢
我们有一个具有以下特征的 azure cosmos DB:
大约2M文件。
每个文件大约30KB。
当我们使用 Java mongo API ( org.mongodb:mongodb-driver-sync:3.9.1
)查询 cosmos DB
使用分片键检索 4000 个文档(在我的理解中应该是最快的)需要 2 分钟以上。
是普通的吗?
我应该期望从 API 获得这些时间吗?
示例代码:
似乎客户端以大约 100 项的批量检索文档。有没有办法增加批量大小?
使用 Azure 门户时,门户中的界面对调用进行分页并仅检索前 100 个文档,然后您必须单击“带来更多”以获取更多文档。似乎对于 azure 界面,检索每个批次也需要大约 2 秒
我有哪些选择可以让它更快地工作?谢谢
azure - 如何使用 Mongo API 在共享吞吐量 cosmosdb 中创建集合
我有一个预配了数据库级吞吐量的 Azure CosmosDb 数据库。我们正在对这个 Cosmos 实例使用 MongoDB API。共享吞吐量模型要求所有集合都指定一个分区键,这似乎阻止了除了 Azure 门户或官方 Azure Cosmos SDK 之外的几乎所有工具都能够创建集合。例如,在 Robo 3T 中,尝试创建集合会导致以下错误:
未能创建集合“mycollection”。
错误:共享吞吐量集合应该有一个分区键
尝试通过猫鼬(类似于此问题)或其他工具创建集合时会发生相同的错误。
所以我想操作性问题归结为: 有没有办法通过 MongoDb API将所需的 partitionKey 传递给 CosmosDb,以便集合创建成功?
asp.net-core-2.0 - Azure cosmosdb mongo api error ion asp.net core
I am getting the below error when I try to connect to Azure cosmosdb mongo api from my asp.net core :
Error: TimeoutException: A timeout occured after 30000ms selecting a server using CompositeServerSelector
Code used:
node.js - 如何使用 mongoose 和 Node.js 仅检索 Azure Cosmos 中的子对象?
我正在使用带有 Mongodb API 的 Azure cosmos db。我也使用猫鼬来创建模式并在数据库中创建新文档。我也在使用 Node.js。
在这一点上,我正在考虑使用嵌入文档的一对多关系。
数据结构是这样的:
我只想检索“sensor1”对象,而不是来自父对象的任何内容。
使用查询我只能检索整个“locality1”对象及其所有底层子部分和传感器。在更大的范围内,这是不必要的大量数据。
到目前为止,这是我的查询。
我很感激任何提示!:)
mongoose - CosmosDB 与 mongodb 和 mongoose 的连接
我正在尝试通过猫鼬连接到我的数据库,如下所示:
我收到一条错误消息:
MongoError:数据库名称必须是字符串
现在,如果我删除useNewUrlParser: true,
我得到:
错误:密码包含非法的未转义字符
我显然不想删除 useNewURLParser,但我认为这很奇怪。
azure-cosmosdb - 如何为 Mongo API 禁用 Cosmos DB 分片键
我正在将一个非常简单的 mongo DB(100 个条目)迁移到 Azure Cosmos DB。我的应用基于 node-js,所以我使用 mongoose 作为映射器。在真正简单之前,定义模式,查询集合,完成。
现在在 cosmos db 中设置集合时,有人问我有关分区键和分片键的问题。第一个我可以忽略,但最后一个是必需的。快速阅读该主题并理解它是一种分区(同样,我不需要也不想要),我只是选择 _id 作为分片键。
当然有些东西是行不通的。
虽然查找查询工作得很好。更新或插入记录失败,错误如下:
MongoError:命令中的查询必须针对单个分片键
Cosmos db(使用 mongo API)被广告给我作为替代品。显然情况并非如此,因为我从不需要担心 mongo 中的这些事情,尤其是对于这样一个小规模的应用程序/数据库。
那么,我可以以某种方式禁用分片吗?或者,我如何定义分片键而不用担心它?
干杯
azure - golang COSMOS DB,快速入门,缺少环境变量 AZURE_DATABASE
更新:
- 在 init 函数中使用的 GetEnvVarOrExit 已被弃用。(但可能仍然有效)
2.(这行得通)快速的解决方案是简单地以这种方式编辑 init() 函数......
- 第三个选项是设置环境变量,这是指令要求做的。但是上面的第 2 项有效。我没有使用这个选项。
对我有用的解决方案是将上面的 Init() 函数更改为硬编码 Azure/Cosmos 凭据。
原始问题
我正在尝试为 GoLang 和 CosmosDB 做 MS Azure 快速入门。我有一个 CosmosDB 设置并确认
- 聚合管道启用
- 启用 MongoDB 3.4 有线协议(版本 5)
- 启用每文档 TTL
我关注的文章是: https ://docs.microsoft.com/en-us/azure/cosmos-db/create-mongodb-golang
但是,我收到此错误:
在 Azure/CosmosDB 控制面板 > 连接字符串
因此 DB 应该是 vytest02?