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

0 投票
0 回答
234 浏览

node.js - Azure CosmosDB with MongoDB API:如何避免请求率大的错误

我们正在使用具有 MongoDB API 支持的 Azure CosmosDB 的特定实例。

我使用一个名为 es6-promise-pool 的库来限制并发(我已将其降低为 1)。

这是 generatePromisesLoglines 函数:

这是 promiseWrite 函数:

根据此网页,我一直在寻找批量插入功能,但没有找到任何批量插入或批量更新:Azure Cosmos DB Mongo API support

当我尝试一次插入约 15-20k 文档时,会发生请求率大错误。有没有更好的方法可以编写这个,或者我可以使用某种支持的 MongoDB API 到 Azure CosmosDB 的批量插入?

我创建了一个带有 100,000 RU 分片的测试数据库,我认为它不需要更多,因为每个单独的文档都相对较小。

样本文件:

0 投票
0 回答
186 浏览

azure-cosmosdb - Azure CosmosDb 计数消耗大量 RU/s

我正在使用 CosmosDb,但我的应用程序消耗大量 RU/s 时遇到问题。为了弄清楚事情,我一直在通过 mongo shell 测试不同的查询并注意到以下内容。

当我使用以下查询在一个集合中获取所有文档时:

Azure 门户中显示的请求费用高于(如预期)此计数查询:

但是计数查询的最大消耗 RU/s 要高得多(参见图表)。这让我很惊讶。由于请求费用较高,获取的最大消耗 RU/s 不应该更高吗?

该集合由 6k 个文档组成,每个文档大约 600b。

请求收费图

最大消耗 RU/s 图

0 投票
1 回答
214 浏览

azure-cosmosdb - 是否可以使用 Azure cosmos mongodb API 创建多个“唯一且稀疏”的索引

我正在尝试在users集合上创建多个唯一索引,这些索引也很稀疏。

用例:允许用户使用电话或电子邮件注册

问题:Mongo db 允许创建此类索引,并且当连接到真正的 mongo 3.2 实例时,应用程序会按预期运行。然而,在 cosmos 中,电子邮件成为一个独特的领域,但并不稀疏。

有没有办法通过 mongodb API 用 cosmos 实现这个用例?即,无需在每次插入之前通过 fetch 查询检查唯一性。

尝试:浏览 cosmos 的文档并没有透露太多信息。他们声称支持 mongo 3.2 API,并且警告中没有提到稀疏索引。创建唯一稀疏索引createIndex不会导致错误,而只会创建唯一索引。在不同的字段上创建另一个类似的索引不会出错,但甚至不会创建唯一索引。它创建一个正常的索引。

更新:得到了 azure 支持团队的回复:

目前我们不支持稀疏索引。您可以这样做,即使用电话和电子邮件属性创建一个复合索引。

我认为复合索引不会对我的用例有所帮助,因为我希望电话和电子邮件在集合中都是全球唯一的,而不仅仅是它们的组合。

0 投票
2 回答
1303 浏览

azure-cosmosdb - 如何删除分区中的所有数据?

我有一个包含许多不同分区的 CosmosDB 集合。我想删除其中一个分区中的所有数据,所以我尝试运行命令:

PartitionKey我分区/分片基于的字段在哪里。但是,当我执行此操作时,它会返回不是很有帮助的消息:

错误:发生错误

为什么我会收到此消息,我如何才能获得有关原因的更多详细信息或找到解决方案?

0 投票
1 回答
323 浏览

azure - 构建管道中 Azure CosmosDb 模拟器任务所需的 MongoDb 连接字符串是什么?

我正在尝试使用新的 Azure CosmosDB 模拟器任务(https://docs.microsoft.com/en-us/azure/cosmos-db/tutorial-setup-ci-cd)。

我们依赖于 Azure CosmosDb 对 MongoDb 的支持,我似乎无法弄清楚连接字符串应该是什么。在上面的示例中,Endpoint URL 被 CosmosDb Emulator 任务提供的 Output 变量覆盖——但这不是预期的格式。

编辑:mongodb 的默认连接字符串不起作用

任何建议将不胜感激。

谢谢你。

0 投票
1 回答
1435 浏览

azure-cosmosdb - cosmosdb sql api vs mongodb api 哪一个用于我的场景。

我有一个名为“聊天”的文件

每次有新的聊天消息到达时,我应该能够简单地附加到这个数组。

mongodb API 聚合管道(预览版)允许我为此使用 $push $addToSet 之类的东西

如果我使用 sql api,每次修改它并每次都创建一个新文档时,我将不得不提取整个文档。

其他注意事项: 此阵列可以快速增长。这个“聊天”文档也可以嵌套到其他文档中。

我的问题 这是否意味着 mongodb API 更适合这种情况,而 sql api 会对这种情况产生性能影响?

0 投票
2 回答
331 浏览

azure - CosmosDB mongodb - $all 结合 $elemMatch 查询嵌套的对象集合未按预期工作

我正在使用 CosmosDB(带有 mongodb-api)。

对于这个例子,我使用了下一个文档:

我需要检索文档 1 和 3,下一个查询匹配在 mongoDB 中完美运行。

在 CosmosDB 中返回 0 条记录。似乎不支持 cosmosDB 中超过 1 个 elemMatch。知道是否可以使用 mongoDB-api 在 CosmosDB 中进行查询?

0 投票
1 回答
1008 浏览

mongodb-query - 查询 CosmosDB 时处理此请求时发生未知服务器错误

我尝试了下面的查询,但由于某种原因,我得到了一个Unknown server error occurred when processing this request. 我对 mongodb 有点陌生,但是在阅读 Mongodb shell 和 CosmosDB 的文档时,列出的所有运算符似乎都受支持,并且在语法上看起来是正确的。

我的 CosmosDB 使用 MongoAPI 并包含一个以transactions文档命名的集合,其中包含许多键,但以下是重要的:

在某些文档中还调用了一个键{ "make": INT(32) },其中我们有一个填充数据漏洞的脚本。我只想要带有真实数据的文档,所以我用"make"密钥过滤掉了文档。bdr_dateyyyymmdd格式,timeHHMM格式。

除了未知的服务器错误异常之外,错误代码并没有真正说明什么,所以我很困惑我到底做错了什么。我缺少一些简单的东西吗?

如果您需要更多信息,我会尽力提供。感谢您的帮助!

0 投票
0 回答
135 浏览

azure-cosmosdb - 在 Cosmos DB 中后处理文档的最快方法

我想使用 Mongo 或 SQL API 将文档保存到 Cosmos DB。

我需要计算某种自动递增的字段,以便我可以根据该字段对文档进行排序。我们称该字段为“DocumentOrder”。

但是,计算字段不必阻塞插入事务。插入文档应该尽可能快,这里不需要原子性。

对插入的文档进行后处理以计算字段的最佳选择是什么,以便插入和更新计算字段之间的延迟尽可能小。

触发 Azure 功能?网络作业?CosmosDB PostTrigger?

要求是:

  1. 它必须是可靠的——每个文件最终都必须经过后期处理。
  2. 它必须以确定的顺序发生,因此计算值 DocumentOrder=1 的文档将在 DocumentOrder=2 的文档之前保存。

我想达到什么目的?最后,我需要一个查询,该查询将始终以相同的顺序返回文档,大约与插入时的顺序相同。

0 投票
0 回答
676 浏览

c# - Cosmos DB 查询指标

我对 Cosmos DB API 返回的 QueryMetrics 有疑问。

根据 Azure Portal,我的数据库中有 5 个分区。我PopulateQuery=trueFeedOptions查询 CosmosDB 以确认和检查昂贵的查询时进行设置。因为它是一个SELECT *查询,所以我期望每个分区返回 5 个查询指标,每个分区具有正确的分区 ID。

我确实得到了 5 个不同的查询指标,但每个指标都有相同的 partitionId。

这是错误还是我做错了什么。请参见下面的示例。

数据按 ID 分区。该 ID 不是查询的一部分。

上述查询中所有 5 次的 PartitionID 都是 0。但所有其他指标都不同。

这不应该是 0、1、2、3、4。