不区分大小写的搜索Couchbase中的数组

问题描述

我在如下所述的长沙发上有文件

{
"id": "a32","attributes": [
          "R & M Richards","false"
        ]
}

{
"id": "x54","attributes": [
          "r & m Richards","false"
        ]
}

我想在单一查询获取这两个文档。 我创建了一个查询(如下),但这只返回一个记录。

SELECT * FROM `test` WHERE attributes IN [["R & M Richards","false"]]

如何忽略大小写?

解决方法

有两个选项都使用LOWER函数。第一个不使用与您使用的相同的数组语法,而只是对属性使用数组索引。

SELECT t.*
FROM `test` t
where LOWER(t.attributes[0]) == LOWER("R & M Richards")
AND LOWER(t.attributes[1]) == "false"

第二个选项使用ARRAY as an operator

SELECT t.*
FROM `test` t
WHERE ARRAY LOWER(x) FOR x IN attributes END IN [[LOWER("R & M Richards"),"false"]]