Ошибка нескольких запросов при создании представлений Couchbase - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь создать представление в couchbase.Ниже приведен мой запрос,

function (doc, meta) {
  if (doc._class == "com.abc.xyz.Account" && doc.accountId) {
    emit(doc.accountId, null);
  }
}

Однако я получаю исключение ниже:

{"error":"Error, you cannot issue more than one query at once. Please remove all text after the semicolon closing the first query."}

Не знаю, в чем проблема с запросом.Пытался найти решение, но не смог найти.

1 Ответ

0 голосов
/ 11 декабря 2018

Упомянутая в вопросе функция javascript выглядит как Couchbase Map / Reduce View Engine .Они могут быть запрошены с использованием SDK или REST API, а подробности изложены в разделе Просмотр запросов .Кроме того, пользовательский интерфейс Map / Reduce View (то же место, где определяются функции map / Reduce) имеет некоторые ограниченные возможности для запроса определяемого представления.

Пользовательский интерфейс Couchbase Query предназначен исключительно для запросов N1QL / SQL ++.Упомянутая функция может быть выражена в N1QL очень легко:

CREATE INDEX ON mybucket(accountId) WHERE _class == "com.abc.xyz.Account";

Так что нет необходимости создавать представления Couchbase Map / Reduce.И указанный выше индекс может быть запрошен, например, как:

SELECT count(*) FROM mybucket WHERE _class == "com.abc.xyz.Account";

Я уверен, что упомянутая выше функция является лишь примером, и фактический вариант использования более сложный, но общий подход все жеСправедливо.Хорошая идея начать с использования декларативного инструмента (N1QL), так как его гораздо проще использовать.

Для этого есть много полезных ресурсов, таких как N1QL Tutorial , чтобы помочь начать использовать N1QL.Это будет наилучшей отправной точкой для большинства случаев использования.

...