Документ поддержка версий в космос ДБ


Учитывая эти два варианта документа:

{
  "id": "1",
  "tags": [
    {"name": "a"},
    {"name": "b"}
  ],
  "version": 1,
}

И:

{
  "id": "2",
  "tags": ["c","d"],
  "version": 2,
}

Моя первая попытка нормализовать их до последней фигуры на чтение:

SELECT VALUE t.name
FROM c
JOIN t IN c.tags
WHERE c.version = 1

UNION ALL

SELECT VALUE t
FROM c
JOIN t IN c.tags
WHERE c.version = 2

Похоже, что UNION не поддерживается. Этот хоть работает:

SELECT VALUE c.version = 1 ? t.name : t
FROM c
JOIN t IN c.tags

Но он смешивает несколько переводов версия в один кусок кода и будет выглядеть некрасиво после введения более версий.

Что является лучшим способом справиться с версиями вообще-то? Я бы предпочел один запрос, чтобы разобраться со всеми версиями единым способом вместо запуска хранимой процедуры с несколькими запросами, если это возможно.

P. S. Я просто думаю, что UNION это должно быть здесь...



283
0
задан 6 апреля 2018 в 07:04 Источник Поделиться
Комментарии