Статьи

Запрос JSON с использованием SQL с помощью Couchbase Query Workbench

Вы хотите запросить базу данных документов JSON с использованием SQL-подобного синтаксиса?

Couchbase имеет N1QL для вас.

N1QL — это декларативный язык запросов, расширяющий SQL для JSON. Вы можете запрашивать данные через встроенную среду и языковую интеграцию, свободный API или драйверы JDBC / ODBC.

N1QL позволяет запрашивать документы JSON без каких-либо ограничений — сортировать, фильтровать, преобразовывать, группировать и объединять данные с помощью одного запроса. Это правильно. Вы можете объединить данные из нескольких документов с помощью JOIN . Эта гибкая модель данных вам обещали? Это оно. Вы больше не ограничены моделями данных «одна таблица» и «таблица на запрос».

N1QL Tutorial — отличный ресурс для изучения концепций запросов документов JSON с использованием SQL-подобного синтаксиса. Вот некоторые примеры:

1
2
3
SELECT children[0].fname AS cname
    FROM tutorial
       WHERE fname='Dave'

ИЛИ ЖЕ

1
2
3
SELECT fname, age, age/7 AS age_dog_years
    FROM tutorial
        WHERE fname = 'Dave'

ИЛИ ЖЕ

1
2
3
4
SELECT relation, COUNT(*) AS count
    FROM tutorial
        GROUP BY relation
            HAVING COUNT(*) > 1

ИЛИ ЖЕ

1
2
3
4
5
6
7
8
SELECT t.relation, COUNT(*) AS count, AVG(c.age) AS avg_age
    FROM tutorial t
    UNNEST t.children c
    WHERE c.age > 10
    GROUP BY t.relation
    HAVING COUNT(*) > 1
    ORDER BY avg_age DESC
    LIMIT 1 OFFSET 1

ИЛИ ЖЕ

01
02
03
04
05
06
07
08
09
10
11
12
13
SELECT
product.name,
COUNT(reviews) AS reviewCount,
ROUND(AVG(reviews.rating),1) AS AvgRating,
category
 FROM reviews AS reviews
JOIN product AS product
 ON KEYS reviews.productId
UNNEST product.categories AS category
WHERE category = "Appliances"
GROUP BY category, product
ORDER BY AvgRating
DESC LIMIT 3

Итак, вы готовы экспериментировать с N1QL? Вы, конечно, можете использовать инструмент CBQ .

В качестве альтернативы вы можете использовать Couchbase Query Workbench . Средство запросов предоставляет богатый графический интерфейс пользователя для подготовки и выполнения простых и сложных запросов N1QL. Он предоставляет удобный способ разработки запросов, позволяя просматривать, создавать и запускать операторы N1QL и просматривать результаты.

Хотите узнать, как начать?

Узнайте все об этом в этой короткой сессии с Эбеном Хабером:

Задайте свои вопросы на форумах Stack Overflow или Couchbase .

Вы также можете подписаться на нас по адресу @couchbasedev и @couchbase .

Наслаждайтесь!