Вложенные объекты Couchbase Тип

Я пытаюсь найти лучший способ получить тип вложенного объекта в документе с диванной базой.

У меня есть этот документ:

{
  "storeType": {
    "name": "Store"
  },
  "name": "Store",
  "_class": "common.domain.Store",
  "categories": [
    {
      "name": "Series",
      "displayable": false,
      "active": false,
      "highlights": [
        {
          "name": "Spiderman",
          "active": true
        },
        {
          "name": "Spiderman2",
          "active": true
        }
      ],
      "categoryId": "SERIES"
    }
  ],
  "storeId": "STORE::10",
  "order": 1
}

Данные Spring используют _class, чтобы узнать тип документа дыры.

Мой вопрос:

Как я могу найти точный тип каждого объекта в списке категорий?

Большое спасибо


person Magmix    schedule 28.09.2016    source источник
comment
Каков тип вложенного объекта в вашем примере?   -  person geraldss    schedule 28.09.2016
comment
Здесь у меня есть Store, содержащий список категорий (который является унаследованным классом), и каждая категория имеет список основных моментов.   -  person Magmix    schedule 28.09.2016
comment
Даже с Spring Data я всегда добавляю поле типа во все свои документы. Это действительно помогает. Также вы пытаетесь получить его через N1QL или репозиторий Spring Data?   -  person Laurent Doguin    schedule 28.09.2016
comment
Это через N1QL. Обычно мы используем Spring Data для всех простых запросов и используем java-клиент для выполнения более сложных запросов (явно вложенных объектов). Пока у нас есть две проблемы: обновление вложенных объектов второго уровня через N1QL и получение типа вложенного объекта (чтобы избежать синтаксического анализа N1qlQueryResult)   -  person Magmix    schedule 29.09.2016
comment
Нашел запрос для обновления. Мы использовали оператор коллекции WITHIN: UPDATE Bucket b USE KEYS Store::1 SET h.active = false FOR h WITHIN b.categories, когда h.cbHighlightId = Highlight::1 END. Выделение не является документом.   -  person Magmix    schedule 29.09.2016


Ответы (1)


Нашел запрос для обновления. Мы использовали оператор коллекции WITHIN: UPDATE Bucket b USE KEYS "Store::1" SET h.active = false FOR h WITHIN b.categories, когда h.cbHighlightId = "Highlight::1" END . Выделение не является документом

person Magmix    schedule 06.01.2017