我如何排序对视图的请求-使用nodejs API

问题描述 投票:0回答:1

我正在从我的nodejs应用程序查询cloudant数据库。我现在正在尝试对视图查询的结果进行排序。我的索引(键)是这样的:[“ FR000001”,1577189089166][“ FR000001”,1577189089165]等

从以下视图:

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});
}

[我设法使用cloudant github的bug部分中找到的语法,使用语法“ sort:” -creationDate“”在一个真实索引上工作。

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" 
  };

[谁能帮助您找到正确的语法,或者指向我在哪里可以找到好的“用于nodejs的cloudant API”文档?例如,在github上没有关于如何使用sort的任何信息...谢谢...

sorting ibm-cloud cloudant
1个回答
0
投票

经过一天的搜索,可以确定:-我发现的最好的文档直接是benchdb文档: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,
  };

获得排序的响应。

© www.soinside.com 2019 - 2024. All rights reserved.