2016-09-16 9 views
0

Ich habe gerade einen NodeJS cloudantDB Webstarter auf bluemix erstellt. Dann habe ich eine API bekommen Daten von CloudantDB und werde erfolgreich, aber es gibt alle Daten zurück. Bitte beachten Sie js-Datei:CloudantDB & NodeJS: Daten mit spezifischer ID abfragen

js-Datei:

app.get('/api/provider', function(request, response) { 

    console.log("Get method invoked.. ") 

    db = cloudant.use(dbCredentials.dbProvider); 
    var docList = []; 
    var i = 0; 
    db.list(function(err, body) { 
     if (!err) { 
      var len = body.rows.length; 
      console.log('total # of docs -> '+len); 
      if(len == 0) { 
       // error 
      } else { 
       body.rows.forEach(function(document) { 
        db.get(document.id, { revs_info: true }, function(err, doc) { 
         if (!err) { 
          if(doc['_attachments']) { 
           // todo 
          } else { 
           var responseData = createResponseDataProvider(
             doc._id, 
             doc.provider_type, 
             doc.name, 
             doc.phone, 
             doc.mobile, 
             doc.email, 
             doc.logo, 
             doc.address 
             ); 
          } 
          docList.push(responseData); 
          i++; 
          if(i >= len) { 
           response.write(JSON.stringify(docList)); 
           console.log('ending response...'); 
           response.end(); 
          } 
         } else { 
          console.log(err); 
         } 
        }); 

       }); 
      } 

     } else { 
      console.log(err); 
     } 
    }); 

Wenn ich will Parameter API hinzuzufügen, bestimmte Daten aus der DB zu bekommen, brauchen wir Suchindex oder die Abfrage nach cloudant erstellen, afer diese API-Aufruf der gleich: app.get('/api/provider/:id'). Bitte helfen Sie mir zu überprüfen und zu teilen. Danke

Antwort

1

Sie können eine Suchfunktion von Cloudant verwenden.

  1. Sie müssen Suchindex erstellen. Im Suchindex können Sie verwalten, welche Daten Sie erhalten möchten. Beispiel: https://cloudant.com/for-developers/search/
  2. Folgen Sie diesem Code nach dem Erstellen des Suchindex.

...

var query = {q: "id:doc.id"}; 
db.search('design document name', 'index name', query, function(er, result) { 
    if (er) { 
     throw er; 
    } 
    console.log(result); 
}); 
+0

nach Abfrage, möchte ich addiere Parameter q: 'id:' + request.params.id + "& include_doc s = wahr ". Funktioniert es gut? –

+0

nein, Sie können "& include_docs = true" nicht wie einen Parameter in cloudant verwenden. Bitte lesen Sie die Anleitung, es gibt eine Liste von Parametern, die Sie für die Abfrage Ihrer Daten verwenden können –

Verwandte Themen