nano.request() 通过查询 couchDB 查找

nano.request() find by query couchDB

我需要函数 nano.request() 方面的帮助。我尝试使用 cloudant (couchdb) 查询通过请求获取数据,但我不知道如何制作它并且我在任何地方搜索。 我需要帮助 :P 如何在 nano.request 函数中按查询搜索?

谢谢

var query = {
"selector": {
  "_id": {
    "$gt": 0
  },
  "Campaign_Id":9999
},
"fields": [
],
"sort": [
  {
    "_id": "asc"
  }
]};

cloudant.request({db: 'campaigns',
              method: 'get',
              doc: '_all_docs',
              qr: query 
            },function (err,data){
console.log(err);
console.log(data);
});
var testRequest = function(query){

cloudant.request({db: 'campaigns',
                method: 'POST',
                doc: '_find',
                body: query
                },function (err,data){
                console.log(data);
});


 }



  var peticion = {
  "selector": {
     "crazy": true,
    "_id": {
      "$gt": 0
    }
  },
  "fields": [
    "_id",
    "_rev"
  ],
  "sort": [
    {
      "_id": "asc"
    }
  ]
}

  testRequest(peticion);

您的查询看起来不错,但如 Rho 所说,您需要在字段上建立索引才能使用 Cloudant 查询。默认情况下,您在 _id.

中有主索引

您可以在 Cloudant 仪表板中构建索引。这是我的样子:

这是构建该索引的语法:

{
  "index": {
    "fields": [
      "Campaign_Id"
    ]
  },
  "type": "json"
}

这个想法是让它比定义 JavaScript MapReduce 视图简单一些。 Cloudant Query 还可以在您构建 "type": "text" 索引后进行即席查询,但该索引的成本更高。有关更多信息,请访问 https://cloudant.com/blog/cloudant-query-grows-up-to-handle-ad-hoc-queries/

这并不是您问题的确切答案,而只是一个建议。为什么不尝试使用搜索索引来查询?我发现他们真的很棒。我已经从视图和查询转移到搜索索引。