具有多个文档,其结构类似于此:
{
'key1':value,
'key2':value2,
'galaxy':{
'planets':['earth','mars','welcomebackpluto']
'sun': 'something'
}
}
我想查询mars
对象的planets
数组中有galaxy
的所有文档。
我创建的索引没有用,我无法查询它们,不知道该怎么做?
答案 0 :(得分:1)
使用数组索引
CREATE INDEX ix1 ON default (DISTINCT ARRAY (DISTINCT ARRAY p FOR p IN g.planets END) FOR g IN galaxy END) WHERE type = "xyz";
SELECT d.*
FROM default AS d
WHERE d.type = "xyz" AND ANY g IN d.galaxy SATISFIES (ANY p IN g.planets SATISFIES p = "mars" END) END;
https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/indexing-arrays.html