gpt4 book ai didi

c# - Cosmos DB - Mongo API - 文档不包含分片键

转载 作者:太空狗 更新时间:2023-10-29 17:54:34 25 4
gpt4 key购买 nike

我正在研究使用 CosmosDB(以前称为 DocumentDB),我们目前使用 MongoDB,因此我尝试将 MongoAPI 用于 CosmosDB。

我已在 azure 中创建了一个 CosmosDB 部署,创建了一个集合并指定了分区键“/rateId”。

据我了解Microsofts documentation该分区键应该与我插入的每个文档中的属性相关,因此我尝试插入一个基本文档,如下所示:

{
"rateId": "test.1",
"val": "test2"
}

但是,当我尝试插入此内容(通过 Mongo C# 驱动程序或通过 MongoChef)时,我收到错误“文档不包含分片键”。

enter image description here

我已经尝试了所有我能想到的方法,并且每次我都被这个错误拒绝。我是否误解了这是如何工作的,或者做错了什么?

最佳答案

In the documentation微软表示使用此命令通过 mongo shell 创建集合

db.runCommand( { shardCollection: "myDb.myCollection", key: { rateId: "hashed" } } )

我用它来创建一个集合,它现在按预期工作(具有rateId属性的文档插入正常,没有出现“无分片键”错误)。

在 Azure 门户中查看集合时,它会将分片键显示为

$v.rateId.$v

而当我通过门户创建集合并指定/rateId 作为分区时,它显示为

rateId

至少我现在可以取得进展,但我很困惑为什么它会这样,或者这是否就是它的意思(我在文档中看不到任何提及此“$v”格式的内容)

关于c# - Cosmos DB - Mongo API - 文档不包含分片键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com