2016-07-21 72 views
-1

我需要關於函數nano.request()的幫助。我嘗試通過請求使用雲(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 }, 「字段」:[ ], 「排序」:[ { 「_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的看法稍微簡單一些。一旦您構建"type": "text"索引,Cloudant Query也可以執行臨時查詢,但該索引更昂貴。更多關於https://cloudant.com/blog/cloudant-query-grows-up-to-handle-ad-hoc-queries/

1

這不完全是你的問題的答案,而只是一個建議。爲什麼不嘗試使用搜索索引進行查詢?我發現他們非常出色。我已將視圖和查詢移至搜索索引。