Моя ошибка / недоразумение или ошибка в этом руководстве Couchbase N1QL
Я смотрю учебник по N1QL здесь:
Почему этот запрос
SELECT fname, email, children
FROM tutorial
WHERE LENGTH(children) > 0
вернуть пустой массив?
{
"resultset": []
}
3 ответа
Решение
Это связано с тем, что в N1QL нет функции массива "LENGTH" (см. Функции массива). Возможно, это пример ошибки в учебнике. Вместо этого используйте ARRAY_LENGTH. например
SELECT fname, email, children
FROM tutorial
where ARRAY_LENGTH(children) > 0
В N1QL есть функция LENGTH, но она должна использоваться только для строк. Для массивов используйте ARRAY_LENGTH, для объектов (карт) используйте OBJECT_LENGTH. Если вы не уверены в типе, тогда POLY_LENGTH можно использовать с любым типом данных.
Обновлен список функций, которые теперь поддерживаются. http://docs.couchbase.com/prebuilt/n1ql/n1ql-dp4/N1QLRef-DP4.pdf