问题标签 [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.
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 分片的测试数据库,我认为它不需要更多,因为每个单独的文档都相对较小。
样本文件:
azure-cosmosdb - Azure CosmosDb 计数消耗大量 RU/s
我正在使用 CosmosDb,但我的应用程序消耗大量 RU/s 时遇到问题。为了弄清楚事情,我一直在通过 mongo shell 测试不同的查询并注意到以下内容。
当我使用以下查询在一个集合中获取所有文档时:
Azure 门户中显示的请求费用高于(如预期)此计数查询:
但是计数查询的最大消耗 RU/s 要高得多(参见图表)。这让我很惊讶。由于请求费用较高,获取的最大消耗 RU/s 不应该更高吗?
该集合由 6k 个文档组成,每个文档大约 600b。
azure-cosmosdb - 是否可以使用 Azure cosmos mongodb API 创建多个“唯一且稀疏”的索引
我正在尝试在users
集合上创建多个唯一索引,这些索引也很稀疏。
用例:允许用户使用电话或电子邮件注册
问题:Mongo db 允许创建此类索引,并且当连接到真正的 mongo 3.2 实例时,应用程序会按预期运行。然而,在 cosmos 中,电子邮件成为一个独特的领域,但并不稀疏。
有没有办法通过 mongodb API 用 cosmos 实现这个用例?即,无需在每次插入之前通过 fetch 查询检查唯一性。
尝试:浏览 cosmos 的文档并没有透露太多信息。他们声称支持 mongo 3.2 API,并且警告中没有提到稀疏索引。创建唯一稀疏索引createIndex
不会导致错误,而只会创建唯一索引。在不同的字段上创建另一个类似的索引不会出错,但甚至不会创建唯一索引。它创建一个正常的索引。
更新:得到了 azure 支持团队的回复:
目前我们不支持稀疏索引。您可以这样做,即使用电话和电子邮件属性创建一个复合索引。
我认为复合索引不会对我的用例有所帮助,因为我希望电话和电子邮件在集合中都是全球唯一的,而不仅仅是它们的组合。
azure-cosmosdb - 如何删除分区中的所有数据?
我有一个包含许多不同分区的 CosmosDB 集合。我想删除其中一个分区中的所有数据,所以我尝试运行命令:
PartitionKey
我分区/分片基于的字段在哪里。但是,当我执行此操作时,它会返回不是很有帮助的消息:
错误:发生错误
为什么我会收到此消息,我如何才能获得有关原因的更多详细信息或找到解决方案?
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 的默认连接字符串不起作用
任何建议将不胜感激。
谢谢你。
azure-cosmosdb - cosmosdb sql api vs mongodb api 哪一个用于我的场景。
我有一个名为“聊天”的文件
每次有新的聊天消息到达时,我应该能够简单地附加到这个数组。
mongodb API 聚合管道(预览版)允许我为此使用 $push $addToSet 之类的东西
如果我使用 sql api,每次修改它并每次都创建一个新文档时,我将不得不提取整个文档。
其他注意事项: 此阵列可以快速增长。这个“聊天”文档也可以嵌套到其他文档中。
我的问题 这是否意味着 mongodb API 更适合这种情况,而 sql api 会对这种情况产生性能影响?
azure - CosmosDB mongodb - $all 结合 $elemMatch 查询嵌套的对象集合未按预期工作
我正在使用 CosmosDB(带有 mongodb-api)。
对于这个例子,我使用了下一个文档:
我需要检索文档 1 和 3,下一个查询匹配在 mongoDB 中完美运行。
在 CosmosDB 中返回 0 条记录。似乎不支持 cosmosDB 中超过 1 个 elemMatch。知道是否可以使用 mongoDB-api 在 CosmosDB 中进行查询?
mongodb-query - 查询 CosmosDB 时处理此请求时发生未知服务器错误
我尝试了下面的查询,但由于某种原因,我得到了一个Unknown server error occurred when processing this request
. 我对 mongodb 有点陌生,但是在阅读 Mongodb shell 和 CosmosDB 的文档时,列出的所有运算符似乎都受支持,并且在语法上看起来是正确的。
我的 CosmosDB 使用 MongoAPI 并包含一个以transactions
文档命名的集合,其中包含许多键,但以下是重要的:
在某些文档中还调用了一个键{ "make": INT(32) }
,其中我们有一个填充数据漏洞的脚本。我只想要带有真实数据的文档,所以我用"make"
密钥过滤掉了文档。bdr_date
是yyyymmdd
格式,time
是HHMM
格式。
除了未知的服务器错误异常之外,错误代码并没有真正说明什么,所以我很困惑我到底做错了什么。我缺少一些简单的东西吗?
如果您需要更多信息,我会尽力提供。感谢您的帮助!
azure-cosmosdb - 在 Cosmos DB 中后处理文档的最快方法
我想使用 Mongo 或 SQL API 将文档保存到 Cosmos DB。
我需要计算某种自动递增的字段,以便我可以根据该字段对文档进行排序。我们称该字段为“DocumentOrder”。
但是,计算字段不必阻塞插入事务。插入文档应该尽可能快,这里不需要原子性。
对插入的文档进行后处理以计算字段的最佳选择是什么,以便插入和更新计算字段之间的延迟尽可能小。
触发 Azure 功能?网络作业?CosmosDB PostTrigger?
要求是:
- 它必须是可靠的——每个文件最终都必须经过后期处理。
- 它必须以确定的顺序发生,因此计算值 DocumentOrder=1 的文档将在 DocumentOrder=2 的文档之前保存。
我想达到什么目的?最后,我需要一个查询,该查询将始终以相同的顺序返回文档,大约与插入时的顺序相同。
c# - Cosmos DB 查询指标
我对 Cosmos DB API 返回的 QueryMetrics 有疑问。
根据 Azure Portal,我的数据库中有 5 个分区。我PopulateQuery=true
在FeedOptions
查询 CosmosDB 以确认和检查昂贵的查询时进行设置。因为它是一个SELECT *
查询,所以我期望每个分区返回 5 个查询指标,每个分区具有正确的分区 ID。
我确实得到了 5 个不同的查询指标,但每个指标都有相同的 partitionId。
这是错误还是我做错了什么。请参见下面的示例。
数据按 ID 分区。该 ID 不是查询的一部分。
上述查询中所有 5 次的 PartitionID 都是 0。但所有其他指标都不同。
这不应该是 0、1、2、3、4。