Как создать мульти продукт для определенного идентификатора - PullRequest
0 голосов
/ 31 мая 2019

Я новичок в cosmos db и создаю базу проекта web api на cosmos db. Я создал базовую операцию crud.Теперь проблема состоит в том, что у поставщика есть больше отраслей, в отрасли у поставщика может быть более одного продукта. Я создаю один продукт, когда я пытаюсь создать больше одного, он показывает идентификатор ошибки, уже использованный.Здесь я использовал идентификатор в качестве ключа раздела.Проблема вторая: у некоторых поставщиков может быть только категория, поэтому мне нужно добавить продукт непосредственно к ним.пожалуйста, помогите мне структурировать это решить проблему.Код продукта:

 public async Task<Catalog> AddProduct(
          Catalog order)
        {
            var requestOptions =
                new RequestOptions
                {
                    PartitionKey = new PartitionKey(order.Id.ToString())
                };

            var catalogDocument = await _cosmosClient.CreateDocumentAsync(
                UriFactory.CreateDocumentCollectionUri(
                    _azureCosmosDbOptions.Value.DatabaseId, "catalog"), order, requestOptions);

            return
                (Catalog)((dynamic)catalogDocument.Resource);
        }

Мой код json:

    "id": "8000003c-0001-fb00-b63f-84710c7967aa",

    "industy": {

      "category": [
        {

          "subcategory": [
            {
                product1,product2.....
                }

сообщение об ошибке: {"код": 409, "тело": {"код": "конфликт", "сообщение"":" Объект с указанным идентификатором уже существует в системе}

1 Ответ

1 голос
/ 01 июня 2019

У вас не должно быть ни одного гигантского документа для всего подобного. Используйте отдельную коллекцию и сохраните каждый product в качестве отдельного документа с указанием поставщика, отрасли и категории в качестве полей в этом документе. Затем вы можете легко изменить отдельные записи о товарах и получить все товары для данного поставщика или категории в запросе.

...