Моя ошибка / недоразумение или ошибка в этом руководстве 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

Другие вопросы по тегам