MongoDB: поиск и изменение с помощью GraphQL

Я работаю над мутацией GraphQL, и здесь мне нужна помощь. Мой документ выглядит как

{
    "_id" : ObjectId("5bc02db357146d0c385d4988"),
    "item_type" : "CategoryMapping",
    "id" : null,
    "CategoryGroupName" : "Mystries & Thriller",
    "CustomCategory" : [ 
        {
            "name" : "Private Investigator",
            "MappedBisacs" : [ 
                "investigator", 
                "Privately owned", 
                "Secret"
            ]
        },
{
            "name" : "Crime Investigator",
            "MappedBisacs" : [ 
                "crime investigator", 
                "crime thriller"
            ]
        }
    ]
}

UI

  • Разрешить пользователю обновлять MappedBisacs с помощью списка флажков. Таким образом, пользователь может добавлять / обновлять или удалять список bisacs.

Проблема - когда клиент отправляет запрос GraphQL, как показано ниже;

mutation {
  CategoryMapping_add(input: {CategoryGroupName: "Mystries & Thriller", CustomCategory: [{name: "Crime Investigator", MappedBisacs: ["investigator", "dafdfdaf", "dafsdf"]}]}) {
    clientMutationId
  }
}

Мне нужно найти конкретную настраиваемую категорию и обновить ее массив bisac.

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
269
1

Ответы 1

Не уверен, получил ли я его, но это больше вызывает сомнения на MongoDb, чем на самом GraphQL. Сначала вы должны найти нужный документ (я бы использовал id документа вместо CategoryGroupName), затем вы можете обновить этот массив несколькими способами. Например, после того, как вы нашли документ, вы можете просто получить доступ к содержимому массива и распространить его на новый, добавив эти новые данные из вашей мутации, и сохранить этот объект с помощью метода update. (если вы просто хотите добавить новые данные, не удаляя их) Так что все зависит от случая.

Проверить: https://docs.mongodb.com/manual/reference/operator/update-array/

Надеюсь, это поможет! :)

Другие вопросы по теме