В Couchbase или N1QL как я могу проверить совпадают ли значения в массиве


В couchbase у меня есть следующая структура документа...

{
    name: "bob",
    permissions: [
        2,
        4,
        6
    ]
}

Мне нужно иметь возможность создать представление или запрос N1QL, который проверит, содержатся ли разрешения для "bob" в данном массиве.

Например, у меня есть массив с содержимым

[1,2,3,4,5,6]

Мне нужно, чтобы документ "bob" был возвращен, потому что мой массив содержит 2,4,6 и то же самое делает " bob "

Если мой массив содержит 1,3,4,5,6 " bob " должен не быть выбран, потому что мой массив не содержит "2"

По существу, я хочу сопоставить любые документы, чьи записи разрешений содержатся в моем массиве.

Решение может быть либо представлением, либо запросом N1QL.

1 3

1 ответ:

Используя N1QL, вы можете сделать следующее:

SELECT * FROM my_bucket WHERE EVERY p IN permissions SATISFIES p IN [ 1,2,3,4,5,6 ] END;