2016-07-21 14 views
-1

Ich brauche Hilfe mit einer Funktion nano.request(). Ich versuche, Daten durch eine Anfrage mit einer Cloudant (Couchdb) Abfrage zu bekommen, aber ich habe keine Ahnung, wie es machen und ich suche überall. bitte ich brauche Hilfe: P wie Suche nach Abfrage in einer nano.request Funktion?nano.request() Suche nach Abfrage couchDB

dank

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

Was hast du probiert? Dieser [db.get] (https://github.com/dscape/nano#dbgetdocname-params-callback) ist möglicherweise der gesuchte Aufruf. – Rho

+0

Ich brauche eine Abfrage zum Beispiel "Wähler" filtern machen: { "_id": { "$ gt": 0 }, "campaign_id": 9999 }, "Felder": [ ], "sort": [ { "_id": "asc" } –

+0

Sie können also [Cloudant Query] (https://github.com/cloudant/nodejs-cloudant#cloudant-query) für das verwenden, was Sie sind versuchen zu tun. Denken Sie daran, dass Sie zuerst einen Index erstellen müssen. [Hier ist] (https://cloudant.com/using-cloudant-query-tutorial/) ein direktes Beispiel. – Rho

Antwort

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

Ihre Abfrage sieht gut aus, aber ich mag Rho sagte, müssen Sie einen Index für die Felder erstellen, bevor Sie Cloudant Abfrage verwenden können. Standardmäßig haben Sie den primären Index in _id.

Sie können Indizes im Cloudant-Dashboard erstellen. Hier ist, was ich wie folgt aussieht: building a Cloudant Query index in the Cloudant dashboard

Hier ist die Syntax ist, dass Index zu erstellen:

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

Die Idee ist, denn es ist ein wenig einfacher als die Definition JavaScript MapReduce Ansichten. Cloudant Query kann auch Ad-hoc-Abfragen durchführen, sobald Sie einen "type": "text"-Index erstellt haben, dieser Index ist jedoch teurer. Mehr dazu unter https://cloudant.com/blog/cloudant-query-grows-up-to-handle-ad-hoc-queries/

1

Dies ist nicht genau eine Antwort auf Ihre Frage, sondern nur ein Vorschlag. Warum versuchen Sie nicht, Suchindizes für Ihre Abfragen zu verwenden? Ich fand sie wirklich großartig. Ich habe von Ansichten und Abfragen zu Suchindizes gewechselt.