Как мне отсортировать запрос к просмотру - используя nodejs API - PullRequest
0 голосов
/ 07 января 2020

Я запрашиваю облачную БД из моего приложения nodejs. Я сейчас пытаюсь отсортировать результаты из запроса представления. Мои индексы (ключи) выглядят так: ["FR000001", 1577189089166] ["FR000001", 1577189089165] et c

из следующего представления:

function(doc) {
  emit([doc.siteId, doc.creationDate],{"id" :doc._id, "rev": doc._rev, "siteId": doc.siteId, "creationDate": doc.creationDate, "scores": doc.scores, locationId: doc.locationId});
}

Мне удалось заставить это работать с реальным индексом, используя синтаксис "sort:" -creationDate "", используя синтаксис, найденный в разделах ошибок облачного github.

var ddoc = {
    q: "site:\"" + id + "\"",
    include_docs: false,
    sort: "-creationDate",
  };
  const tmp = await cloudant.use('alarms').search('alarmSearch', 'IndexBySite', ddoc);

Я не могу заставить его работать с моим представлением с массив параметров запроса. Я пробовал разные варианты:

var ddoc_view = {
    startkey: ["siteid1",0000000000000],
    endkey: ["siteid1",9999999999999],
    include_docs: true,
    sort: "creationDate" 
  };

Может кто-нибудь помочь найти правильный синтаксис или указать мне, где я могу найти хорошую "облачную API для nodejs" документацию? например, нет ничего о том, как использовать сортировку "на GitHub ... Спасибо ...

1 Ответ

0 голосов
/ 08 января 2020

хорошо, после еще одного дня поиска: - лучшая документация, которую я нашел, это непосредственно couchdb do c: https://docs.couchdb.org/en/stable/ddocs/views/intro.html - Я закончил тем, что изменил представление:

emit([doc.creationDate, doc.siteId], {"id" :doc._id, "rev": doc._rev, "siteId": doc.siteId, "locationTag":doc.locationTag});

и запрос:

  var ddoc_view = {
    endkey: [0000000000000, siteid],
    startkey: [9999999999999, siteid],
    include_docs: false,
    descending: true,
    limit: docsReturned,
  };

Чтобы получить отсортированный ответ.

...