Sql Couchbase查询以获取嵌套级别属性的数据&;创建索引
如何在java中查询couchbase n1ql中的嵌套文档值 文档值是一个对象(人),其属性类型为1个对象(地址)列表 Address对象具有多个属性,如city、zipCode等 如何编写查询以查找基于最低级别(如city或zipCode)的匹配记录 下面是一个示例文档结构,所有文档都具有类似的结构Sql Couchbase查询以获取嵌套级别属性的数据&;创建索引,sql,couchbase,n1ql,spring-data-couchbase,Sql,Couchbase,N1ql,Spring Data Couchbase,如何在java中查询couchbase n1ql中的嵌套文档值 文档值是一个对象(人),其属性类型为1个对象(地址)列表 Address对象具有多个属性,如city、zipCode等 如何编写查询以查找基于最低级别(如city或zipCode)的匹配记录 下面是一个示例文档结构,所有文档都具有类似的结构 { companyName: "ABC Inc", companyId: 123, persons: [ { "name": "Joh
{
companyName: "ABC Inc",
companyId: 123,
persons: [
{
"name": "John Smith",
"address": [
{
"city": "London",
"zipCode": 1234,
"street": "23 Nottingham dr",
"contact": "123456678"
},
{
"city": "Los Angeles",
"zipCode": 67834,
"street": "345 Richmond dr",
"contact": "23456"
}
]
},
{
"name": "Peter Drink",
"address": [
{
"city": "Delhi",
"zipCode": 70046,
"street": "SP Road",
"contact": "9844334"
},
{
"city": "Los Angeles",
"zipCode": 67834,
"street": "433 Ku St",
"contact": "12345677"
}
]
}
]
}
输入标准是zipCode,我需要能够基于zipCode获取所有文档中的所有person对象
输入:zipCode 67834
预期产出:
[
{
"city": "Los Angeles",
"zipCode": 67834,
"street": "433 Ku St",
"contact": "12345677"
},
{
"city": "Los Angeles",
"zipCode": 67834,
"street": "345 Richmond dr",
"contact": "23456"
}
]
您需要首先取消数组的测试(这将使父文档与数组中的每个文档进行自连接)
索引中的绑定变量名必须与非最新别名匹配才能选择索引。感谢您的回复,它成功了:)。你能在这里分享一下如何在zipCode上创建索引吗?
SELECT a.*
FROM default AS d
UNNEST d.persons AS p
UNNEST p.address AS a
WHERE a.zipCode = 67834 AND .....;
CREATE INDEX ix1 ON default(DISTINCT ARRAY (DISTINCT ARRAY a.zipCode FOR a IN p.address END) FOR p IN persons END);