Возникла исключительная ситуация при вставке значений в Azure COSMOS DB для API MongDB: документ не содержит ключ шарда - PullRequest
0 голосов
/ 03 марта 2019

Я создал базу данных в Azure: Azure Cosmos DB.

При создании базы данных я выбрал группу ресурсов, задал имя учетной записи, API: выбрал `Azure COSMOS DB для API MongDB, дал остальные необходимые данные и создал учетную запись в БД.

После создания учетной записи в БД я добавил в нее БД 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, но все же он дает это исключение.
Любая помощь в том, почему это таквыдает эту ошибку. Я что-то упустил

Любая помощь в этом вопросе будет очень полезна.

...