您想使用类似SQL的语法查询JSON文档数据库吗?
Couchbase为您提供N1QL 。
N1QL是一种声明性查询语言,它扩展了JSON的SQL。 您可以通过本机框架和语言集成,流利的API或JDBC / ODBC驱动程序查询数据。
N1QL使您可以不受任何限制地查询JSON文档-使用单个查询对数据进行排序,过滤,转换,分组和合并。 那就对了。 您可以使用JOIN 合并来自多个文档的数据。 您可以得到那种灵活的数据模型? 就是这个。 您不再局限于“单个表”和“每个查询表”数据模型。
N1QL教程是学习使用类SQL语法查询JSON文档的概念的绝佳资源。 这里有些例子:
SELECT children[0].fname AS cname
FROM tutorial
WHERE fname='Dave'
要么
SELECT fname, age, age/7 AS age_dog_years
FROM tutorial
WHERE fname = 'Dave'
要么
SELECT relation, COUNT(*) AS count
FROM tutorial
GROUP BY relation
HAVING COUNT(*) > 1
要么
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
要么
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语句以及查看结果,从而提供了一种方便的方法来执行查询开发。
想学习入门吗?
在与Eben Haber的简短会议中了解所有相关信息:
在Stack Overflow或Couchbase论坛上提问。
您也可以通过@couchbasedev和@couchbase关注我们。
请享用!
翻译自: https://www.javacodegeeks.com/2016/01/query-json-using-sql-couchbase-query-workbench.html