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”格式)