将值插入Azure COSMOS DB for MongDB API时引发异常:文档不包含分片键

时间:2019-03-03 16:15:12

标签: c# azure azure-cosmosdb azure-cosmosdb-mongoapi

我已经在Azure中创建了一个数据库:Azure Cosmos DB。

在创建数据库时,我已经选择了资源组,并为其指定了帐户名称,API:选择了“用于MongDB API的Azure COSMOS DB”并给出了其余所需的详细信息,并创建了数据库帐户。

创建数据库帐户后,我在其中添加了一个数据库abc-test,并添加了一个集合abc-test-col。创建集合时,我将分片键指定为id

现在我已经创建了一个控制台应用程序来测试连接性并将一些值写入数据库。这是我编写的代码。

class Program
    {
        static  void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Start Execution");
                Program p = new Program();

                IMongoCollection<CollectionData> collection = p.GetCollection();

                CollectionData cd = new CollectionData();
                cd.id = Guid.NewGuid().ToString();
                cd.Value = 100;


                Task insertjob = collection.InsertOneAsync(cd);
                insertjob.Wait(); // exception raised here

                Console.WriteLine("Inserted data");
                Console.ReadLine();
            }
            catch(Exception ex)
            {
                Console.WriteLine("Exception : " + ex.Message);
            }
        }

        private IMongoCollection<CollectionData> GetCollection()
        {
            try
            {
                string mongDBName = "abc-test";
                IMongoDatabase database;
                string collectionName = "abc-test-col";

                string connectionString = "Connection String"; // Copied the primary connection string.
                MongoClientSettings settings = MongoClientSettings.FromUrl(
                  new MongoUrl(connectionString)
                );
                settings.SslSettings =
                  new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
                var mongoClient = new MongoClient(settings);

                database = mongoClient.GetDatabase(mongDBName);

                return database.GetCollection<CollectionData>(collectionName);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
    }

运行此命令时,出现异常

  

发生一个或多个错误。 (命令插入失败:文档没有   包含分片键。)

我已经在我的CollectionData中添加了id,但它仍然给出了此异常。
关于为什么会引发此错误的任何帮助。我错过了什么

任何有关此事的帮助都将非常有帮助。

0 个答案:

没有答案