作者:snailslowdx_619 | 来源:互联网 | 2023-05-22 10:03
我正在学习Couchbase,现在是3.x版
我的疑问是,我何时应该使用N1QL查询与View查询?
而且,它们之间是否存在性能差异?
注意:我有一个情况:
一个桶有两个文档类型为我的旅行应用程序:路线和城市
一个路由文档保存有关行驶路线的阵列信息城 IDS是它的一部分,然后另一文档保存城市的信息(每个城市有自己的文档).例:
//Bucket : "Traveling App"
{
"type" : "route"
"name" : "The Great Adventure",
"cities" : ["234", "h4345", "h42da"]
}
{
"type" : "city",
"name" : "Little Town",
"UID" : "234"
}
当我查询某个旅行路线时,我应该进行N1QL查询还是查看查询?
因为我必须首先打开Route doc,获取cities数组而不是获取每个City doc.
我认为这种架构最好,因为有些路线可能只有很少的城市而其他路线可能有很多城市.
1> 小智..:
N1QL看起来很有前途.正如另一张海报所指出的那样,在开发者预览中,它是值得探索的.您可以通过NEST travel_app自行获取所有城市文档与每条路线的"嵌套":
SELECT r.name,c FROM traveling_app r NEST traveling_app c ON KEYS r.cities;
要获得特定路线的城市名称,请使用路线的城市作为关键点连接travel_app:
SELECT c.name as city_name FROM traveling_app r JOIN traveling_app c ON KEYS r.cities WHERE r.name ="The Great Adventure";
无论路线有多少个城市,这些查询都将运行相同的操作.