选择couchbase嵌套对象
我有一堆结构如下的文档:选择couchbase嵌套对象,couchbase,Couchbase,我有一堆结构如下的文档: { "month": 11, "year": 2017, //other fields "Cars":[ { "CarId": 123, // other fields }, { "CarId": 456, // other fields } // other cars ] } 我正在搜索id为456的具体汽车实例。到目前为止,我已经: SELECT Cars FROM DevBucket WH
{
"month": 11,
"year": 2017,
//other fields
"Cars":[
{
"CarId": 123,
// other fields
},
{
"CarId": 456,
// other fields
}
// other cars
]
}
我正在搜索id为456的具体汽车实例。到目前为止,我已经:
SELECT Cars
FROM DevBucket
WHERE year = 2017
AND month = 11
AND [CarId=456]
Couchbase返回正确的文档(包含目标车)。但是,输出包括文档中所有Car
节点的数组,但我希望有一个Car(就像我在上面的示例中使用SELECT Cars[1]
)
搜索couchbase教程并没有给我答案。有更好的方法吗?使用可以执行“嵌套数组与其父对象的联接”。这将为每个嵌套元素生成一个对象,其中包括嵌套元素作为顶级字段,以及原始文档的其余部分(嵌套元素和所有元素)
当其父对象的月份和年份为2017年11月时,此查询将检索id为456
的汽车
SELECT car
FROM DevBucket db
UNNEST Cars car
WHERE car.CarId = 456
AND db.year = 2017
AND db.month = 11;
创建此索引以比使用主索引更快地查找:
CREATE INDEX cars_index
ON DevBucket(DISTINCT ARRAY car.CarId FOR car IN Cars END);
有关unest
的更多信息,请参阅