0

我在 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;
            }
        }
    }

当我运行它时,我遇到了一个异常

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

我已经id在我的 CollectionData 中添加了,但它仍然给出了这个例外。
关于为什么会引发此错误的任何帮助。我是否遗漏了什么

在这件事上的任何帮助都会非常有帮助。

4

0 回答 0