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