2016-07-21 3 views
-1

J'ai besoin d'aide avec une fonction nano.request(). J'essaie d'obtenir des données par une requête utilisant une requête cloudant (couchdb) mais je n'ai aucune idée de comment le faire et je recherche n'importe où. s'il vous plaît j'ai besoin d'aide: P comment recherche par requête dans une fonction nano.request ??nano.request() trouver par requête couchDB

grâce

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

Qu'avez-vous essayé? Ce [db.get] (https://github.com/dscape/nano#dbgetdocname-params-callback) pourrait être l'appel que vous recherchez. – Rho

+0

i besoin faire une requête pour filtrer par exemple "sélecteur": { "_id": { "$ gt": 0 }, "CAMPAIGN_ID": 9999 }, "champs": [ ], "sort": [ { "_id": "asc" } –

+0

Donc, vous pouvez utiliser [Cloudant Query] (https://github.com/cloudant/nodejs-cloudant#cloudant-query) pour ce que vous êtes essayer de faire. Gardez à l'esprit que vous devez d'abord créer un index. [Voici] (https://cloudant.com/using-cloudant-query-tutorial/) un exemple direct. – Rho

Répondre

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

Votre requête ressemble bien, mais comme Rho dit, vous devez construire un index sur les champs avant de pouvoir utiliser Cloudant requête. Par défaut, vous avez l'index principal dans _id.

Vous pouvez créer des index dans le tableau de bord Cloudant. Voilà ce que le mien ressemble: building a Cloudant Query index in the Cloudant dashboard

est ici la syntaxe de construire cet index:

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

L'idée est qu'il soit un peu plus simple que de définir des vues JavaScript MapReduce. Cloudant Query peut également effectuer des requêtes ad hoc une fois que vous avez créé un index "type": "text", mais cet index est plus coûteux. Plus sur cela à https://cloudant.com/blog/cloudant-query-grows-up-to-handle-ad-hoc-queries/

1

Ceci n'est pas exactement une réponse à votre question, plutôt juste une suggestion. Pourquoi n'essayez-vous pas d'utiliser les index de recherche pour vos requêtes? J'ai trouvé qu'ils sont vraiment brillants. J'ai quitté les vues et les requêtes pour rechercher des index.