запрос couchbase возвращает пустой ответ

привет, я пытаюсь получить запрос от couchbase и получаю пустой ответ

это мои данные:

введите описание изображения здесь это мои данные, и они продолжают работать так введите описание изображения здесь Я не могу получить ни одного тэга, и я вроде как потерялся, поэтому буду рад чтобы получить любую помощь, я пробовал:

SELECT b.*
FROM mekorot[0] b
WHERE node.kind = 2

и я все еще получаю:

{
 "results": []
}

person sergio art    schedule 05.03.2021    source источник


Ответы (1)


Я не думаю, что IN делает то, что вы думаете, что он должен делать. IN предназначен для таких запросов, как SELECT * FROM foo WHERE x IN ['array0','array1']. Я не уверен, почему этот запрос не выдает ошибок синтаксического анализа, но попробуйте вместо этого следующее:

SELECT b.*
FROM backetname b
WHERE b.node.kind = 2

Вот несколько скриншотов, показывающих это в действии:

пример документа

Запрос N1QL

person Matthew Groves    schedule 05.03.2021
comment
получил то же самое: {results: []} - person sergio art; 05.03.2021
comment
Я добавил несколько скриншотов, показывающих это в действии, может быть, это может пролить свет на то, что мы с вами делаем по-разному. - person Matthew Groves; 05.03.2021
comment
хорошо, что-то я забыл, что мои данные находятся в [] - person sergio art; 05.03.2021
comment
[{node: {path: data, name: data1, kind: 2, description: somthing, tagname: tag1}] это что-то меняет? - person sergio art; 05.03.2021
comment
ну да, без [] он работает, так как я смотрю на него, когда он на []? - person sergio art; 05.03.2021
comment
Так является ли ваш документ массивом? Не могли бы вы отредактировать свой вопрос, чтобы показать весь документ? Даже скриншот может быть полезен. - person Matthew Groves; 05.03.2021
comment
эй, я отредактировал и добавил скриншоты, теперь стало понятнее? - person sergio art; 06.03.2021
comment
В ответе уже есть запрос. SELECT b. * FROM mekorot AS b WHERE b.node.kind = 2. Если документ сам ARRAY, то сгладьте массив с помощью SELECT bu. * FROM mekorot AS b UNNEST b AS bu WHERE bu.node.kind = 2 - person vsr; 06.03.2021
comment
работает !!! большое спасибо! у вас есть какая-нибудь таблица для такого рода запросов? - person sergio art; 06.03.2021
comment
как я продолжаю получать более конкретные данные - person sergio art; 06.03.2021
comment
Можете ли вы связаться со мной для дополнительной помощи с этой базой данных? Я готов платить за разъяснения -_- - person sergio art; 06.03.2021
comment
разместите вопрос здесь ответим. Если вам нужна дополнительная интерактивная помощь, посетите forum.couchbas.com - person vsr; 06.03.2021
comment
Также проверьте query-tutorial.couchbase.com/tutorial/#1 - person vsr; 06.03.2021
comment
я хочу глубже изучить результаты - person sergio art; 06.03.2021
comment
Я сделал следующее: ВЫБРАТЬ bu.states FROM mekorot AS b UNNEST b AS bu WHERE bu.node.description = V1 / V12_Voltage_0-Vmax, и теперь я хочу найти значение на некоторой отметке - person sergio art; 06.03.2021
comment
он показывает мне, что штамп находится в: sorte_results [0] .states [index] .stamp - person sergio art; 06.03.2021
comment
пытаясь сделать это, например: SELECT bu.states [] ._ 1_ FROM mekorot AS b UNNEST b AS bu WHERE bu.node.description = V1 / V12_Voltage_0-Vmax AND bu.node.kind = 2 AND bu .states [] .stamp = 1614641220 проблема находится по адресу: bu.states [*]. stamp = 1614641220 - person sergio art; 06.03.2021
comment
ВЫБРАТЬ s.values ИЗ mekorot AS b UNNEST b AS bu UNNEST bu.states AS s WHERE bu.node.kind = 2 AND bu.node.description = V1 / V12_Voltage_0-Vmax AND s.stamp = 1614641220; - person vsr; 07.03.2021
comment
комментарий не позволяет мне писать подробное объяснение. Если вам нужно проецировать или фильтровать глубокие вложенные массивы, сгладьте ARRAY, используя UNNEST (повторить ....) до желаемого уровня. Если нужно только фильтровать без проекции, используйте предложение ANY (примеры здесь docs.couchbase.com/server/current/n1ql/n1ql-language-reference/) - person vsr; 07.03.2021
comment
большое спасибо!! и, надеюсь, последний вопрос, если я хочу выполнить HTTP-запрос, возможно ли это по умолчанию? - person sergio art; 07.03.2021
comment
я пробовал делать: 127.0.0.1:8093/query/service -d 'statement = SELECT bu .states FROM mekorot AS b UNNEST b AS bu ГДЕ bu.node.kind = 2 'что-то я пропустил? - person sergio art; 07.03.2021
comment
Он должен работать. curl -v -u пользователь: пароль ipaddress: 8093 / query / service -H Content-Type: application / json -d '{инструкция: SELECT bu.states FROM mekorot AS b UNNEST b AS bu WHERE bu.node.kind = 2}' - person vsr; 07.03.2021
comment
и я сделал на сервере функцию CURL (), которая имеет неограниченный доступ - person sergio art; 07.03.2021
comment
curl -v -u user: passwordhttp: //127.0.0.1: 8091 / пулы / default / buckets / mekorot / docs / st3 работают, но тот, который вы указали, не работал - person sergio art; 07.03.2021
comment
это для порта 8093: ошибки: [{code: 1040, msg: Ошибка обработки получения ключа - причина: недопустимый символ '\\' 'ищет начало значения}], статус: фатальный, - person sergio art; 07.03.2021
comment
для порта 8091 я получаю: Запрошенный ресурс не найден. - person sergio art; 07.03.2021
comment
Если вам нужно выполнить запрос через curl. Пример curl, который я привел, - это оболочка curl. Он должен использовать 8093, если вы не отправите весь запрос, трудно сказать, почему он получает ошибку. docs.couchbase.com/server/current/n1ql/ n1ql-language-reference / - person vsr; 07.03.2021
comment
curl -v -u Администратор: pass 127.0.0.1:8093/query/service -H Content-Type: application / json -d '{statement: SELECT bu.states FROM mekorot AS b UNNEST b AS bu WHERE bu.node.kind = 2} 'вот и получаю: HTTP/1.1 400 Bad Request < Content-Length: 325 < Content-Type: application/json; version=7.0.0-N1QL < Date: Sun, 07 Mar 2021 18:44:46 GMT < { "requestID": "fac6da72-10c2-4ea6-b2b0-655c63676e9e", "errors": [{"code":1040,"msg":"Error processing getting key - cause: invalid character '\\'' looking for beginning of value"}], - person sergio art; 07.03.2021
comment
и если я удалю один пробел перед -d ill get: msg: Нет оператора или подготовленного значения - person sergio art; 07.03.2021
comment
Убедитесь, что внутри они заключены в двойные кавычки (т.е. вокруг оператора, значения} - person vsr; 08.03.2021
comment
curl -v -u Administrator:pass127.0.0.1:8093/query/service -H "Content-Type: application/json"-d "{"statement:SELECT bu.* FROM mekorot AS b UNNEST b AS bu WHERE bu.node.kind = 2"}" это должно быть в порядке? - person sergio art; 08.03.2021
comment
Потому что я получаю curl: (3) [globbing] unmatched brace in column 1 * Rebuilt URL to: */ * Could not resolve host: * * Closing connection 1 curl: (6) Could not resolve host: * * Rebuilt URL to: FROM/ * Could not resolve host: FROM * Closing connection 2 curl: (6) Could not resolve host: FROM curl: (3) [globbing] unmatched close brace/bracket in column 8 - person sergio art; 08.03.2021
comment
и вопрос 2 можно ли добавить в запрос поиск по идентификатору? как st3, этот работает у меня SELECT * FROM mekorot WHERE LOWER(META().id)='st3', но я хочу добавить его к существующему запросу - person sergio art; 08.03.2021
comment
и я попробовал: curl -v -u Администратор: zxasqw12 127.0.0.1:8093/query/service -H Content-Type: application / json -d '{statement: SELECT bu.states FROM mekorot AS b UNNEST b AS bu WHERE bu .node.kind = 2} 'и я получил: errors: [{"code":1065,"msg":"Unrecognized parameter in request: 'statement:select"}] - person sergio art; 08.03.2021