ComosDB – MongoAPI – 文档不包含分片键
我正在调查使用CosmosDB(以前的DocumentDB),我们目前使用MongoDB,因此我尝试使用MongoAPI for CosmosDB。
我在azure中创建了一个CosmosDB部署,创建了一个集合并指定了一个分区键“/ rateId”。
据我所知,从Microsofts文档中,这个分区键应该与我插入的每个文档中的属性相关,所以我试图插入一个基本文档,如下所示:
{ "rateId": "test.1", "val": "test2" }
但是当我尝试插入它(通过Mongo C#驱动程序或通过MongoChef)时,我收到错误“文档不包含分片键”。
我已经尝试过每一个我能想到的方式,每次我都被这个错误拒绝。 我误解了这是如何工作或做错事的吗?
在 Microsoft 的文档中 ,使用此命令通过mongo shell创建集合
db.runCommand( { shardCollection: "myDb.myCollection", key: { rateId: "hashed" } } )
我用它来创建一个集合,它现在按预期工作(带有rateId属性的文档插入ok,没有我得到“没有分片键”错误)。
在Azure门户中查看集合时,它会将分片键显示为
$v.rateId.$v
而当我通过门户网站创建集合并指定/ rateId作为分区时,它只显示它
rateId
至少我现在可以进步了,但是我很困惑为什么它会以这种方式运行,或者它是如何实现的(我在文档中看不到任何提及这种“$ v”格式)