Хобрук: Ваш путь к мастерству в программировании

Couchbase N1QL: как агрегировать и присоединяться из одной корзины с массивом ключей

Предполагать:

Документ альбома:

{ 
    "albumName": "my album",
    "photos": [photo1Id, photo2Id, photo3Id]
}

Фотодокумент:

{
    "photoName": "photoName1.img";
    "photoId": "photo1Id";
    "otherData": "Some other data"
}

где ключ фотодокумента такой же, как photoId.

Я хочу сделать оператор SELECT, который будет иметь такой вывод:

{ 
    "albumName": "my album",
    "photos": [{
        "photoName": "photoName1.img";
        "photoId": "photo1Id";
        "otherData": "Some other data"
    },{
        "photoName": "photoName2.img";
        "photoId": "photo2Id";
        "otherData": "Some other data"
    },{
        "photoName": "photoName3.img";
        "photoId": "photo3Id";
        "otherData": "Some other data"
    }]
}

Возможно ли это, или мне нужно создать несколько вариантов выбора?

10.05.2017

Ответы:


1

Используйте пункт NEST., чтобы вывести массив фотографий в итоговый документ.

Пример: (я использую тип для фильтрации по типу вашего документа, но, возможно, это не ваш случай)

SELECT * FROM bucket albums
NEST bucket photos ON KEYS albums.photos
WHERE albums.type='Album'
11.05.2017
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..