2016-07-21 3 views
-1

Мне нужна помощь с функцией nano.request(). Я пытаюсь получить данные по запросу с использованием запроса cloudant (couchdb), но у меня нет идеи, как сделать его и я искать в любом месте. , пожалуйста, мне нужна помощь: P как поиск по запросу в функции nano.request?nano.request() найти по запросу couchDB

благодаря

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

Что вы пробовали? Этот [db.get] (https://github.com/dscape/nano#dbgetdocname-params-callback) может быть вызовом, который вы ищете. – Rho

+0

мне нужно сделать запрос для фильтрации, например, "селектор": { "_id": { "$ GT": 0 }, "CAMPAIGN_ID": 9999 }, "полей": [ ], "sort": [ { "_id": "asc" } –

+0

Итак, вы можете использовать [Cloudant Query] (https://github.com/cloudant/nodejs-cloudant#cloudant-query) за то, что вы пытаясь сделать. Имейте в виду, что вам нужно создать индекс для этого. [Здесь] (https://cloudant.com/using-cloudant-query-tutorial/) - прямой пример. – Rho

ответ

2
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); 
0

Ваш запрос выглядит хорошо, но как Rho сказал, что вам нужно построить индекс на полях, прежде чем вы можете использовать Cloudant запрос. По умолчанию у вас есть первичный индекс в _id.

Вы можете создавать индексы на панели управления Cloudant. Вот что мое выглядит следующим образом: building a Cloudant Query index in the Cloudant dashboard

Вот синтаксис, чтобы построить этот индекс:

{ 
    "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/

1

Это не совсем ответ на ваш вопрос, а всего лишь предложение. Почему вы не пытаетесь использовать поисковые индексы для своих запросов? Я обнаружил, что они действительно блестящие. Я перешел из просмотров и запросов в поисковые индексы.

Смежные вопросы