0
我有以下形式的,我需要查询的文件:N1QL查询ARRAY_CONTAINS速度
{
"id": "-KWiJ1LlYbXSSRUmocwK",
"ownerID": "72f16d9d-b905-498c-a7ff-9702cdcae996",
"orgID": "20071513",
"teams": [
"5818f7a75f84c800079186a8",
"5818cbb25f84c800079186a7"
]
}
我会希望能够基于OWNERID和团队阵列进行查询。我的查询目前看起来像这样:
SELECT id FROM
default AS p
WHERE p.ownerID = $1
OR ARRAY_CONTAINS(p.teams, $2)
ORDER BY id
这样我就可以得到与预期有球队阵中的特定团队身份证件OWNERID以及文档。这个查询确实有效,但是当我拥有大量文档时,我担心性能问题,并且可能有些文档最多分配了20个小组。
我在正确的轨道上吗?
编辑:Couchbase ver 4.1
是的,我正在使用的社区,现在,所以我相信我卡在4.1暂时的,但我一定会尽可能升级。 – cozzbp
同样在使用WHERE ANY和ARRAY_CONTAINS(至少在4.1)进行一些测试之后,ARRAY_CONTAINS似乎在速度上胜出一点。 – cozzbp
我在这发现了一个问题:你*必须*在CREATE INDEX和SELECT中使用相同的变量名(t在这个例子中)。如果它们不匹配,查询可能会工作,但速度会更慢,因为查询规划器不会使用索引(即使给定了USE INDEX)。 – slinkp