Sql строка для этого результата? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть простое преобразование в документ в моей коллекции.Я хочу преобразовать это:

{
  "dossier": {
    "firstName": "Mortimer",
    "lastName": "Snurd",
    "title": "Manager",
    "company": "MyCompany"
  },
  "events": {
    "eventA": {
       "questions": [
        {
          "id": 123,
          "answer": "hello"
        },
        {
          "id": 456,
          "answer": "world"
        }
      ]
    }
  },
  "id": "1d7070f0-a00b-46e8-87ee-67ba8e192639"
}

в это:

{
  "dossier": {
    "firstName": "Mortimer",
    "lastName": "Snurd",
  },
  "events": {
    "eventA": {
       "questions": [
        {
          "id": 123
        },
        {
          "id": 456
        }
      ]
    }
  },
  "id": "1d7070f0-a00b-46e8-87ee-67ba8e192639"
}

Я просто хочу удалить «заголовок» и «компанию» из досье и удалить «ответ» из событий.eventA.questions [].

Я думал, что это должно быть довольно просто, но я не смог понять это.До сих пор я задавал этот запрос

SELECT {"firstName": c.dossier.firstName, "lastName": c.dossier.lastName} AS dossier, 
{
  "questions": {"id": q.id}
} as eventA

from c
join q in c.events.eventA.questions
WHERE c.id = '1d7070f0-a00b-46e8-87ee-67ba8e192639'

, но он дает неверные результаты;

[
    {
        "dossier": {
            "firstName": "Mortimer",
            "lastName": "Snurd"
        },
        "eventA": {
            "questions": {
                "id": 123
            }
        }
    },
    {
        "dossier": {
            "firstName": "Mortimer",
            "lastName": "Snurd"
        },
        "eventA": {
            "questions": {
                "id": 456
            }
        }
    }
]

Что я делаю не так?

1 Ответ

0 голосов
/ 05 февраля 2019

Я понял это, как только обнаружил функцию ARRAY.Окончательный sql

SELECT {"firstName": c.dossier.firstName, "lastName": c.dossier.lastName} AS dossier, 
{
  "questions": ARRAY(SELECT q.id from  q in c.events.eventA.questions)
} as eventA

from c
WHERE c.id = '1d7070f0-a00b-46e8-87ee-67ba8e192639'

Я знал, что это будет просто.:)

...