2016-05-22 9 views
1

Ich Abfrage eine Cloudant-Datenbank mit dem NodeJS-Modul, sowohl mit bestimmten Feld sucht und auch mit der Funktion db.list(). Allerdings werde ich (vermutlich richtig) auch alle Designdokumente zurückgeben.Stop Cloudant Abfragen zurück _design Dokument

Gibt es eine Möglichkeit zu verhindern, dass Entwurfsdokumente zurückgegeben werden, z. B. bei Verwendung von Liste, ohne eine bestimmte Abfrage auszuführen, um die _id zu überprüfen oder jedes Element der Antwort aus der Datenbank zu testen?

Ich finde keinen Weg, es in der Dokumentation zu tun, nur die Erwähnung, dass _design Dokumente wie jedes andere Dokument abgefragt und aktualisiert werden, vermutlich, warum es in der Liste enthalten ist.

Dank

+0

Würde es Ihnen etwas ausmachen, die Kartenfunktion zu teilen, mit der Sie die Liste ansteuern? – ukmadlz

+0

Ich benutze das Cloudant NodeJS-Modul, das zugrunde liegende nano verwendet. Die Funktion ist eingebaut und kann hier gefunden werden https://github.com/dscape/nano#dblistparams-callback – Jake

Antwort

1

Die db.list() Funktion zugreift Cloudant des _all_docs Endpunkt z.B.

https://reader.cloudant.com/animaldb/_all_docs

Dies alles eines Datenbanken Dokumente zurückgibt (einschließlich Design-Dokumente) in der Reihenfolge des Schlüssels.

Da alle ids starten Design-Dokumente mit einem Zeichen ‚_‘ wir

https://reader.cloudant.com/animaldb/_all_docs?startkey=%22a%22

dh meine alle Dokumente beginnend mit denen, deren Schlüssel beginnen mit "finden, indem Sie sagen, nur die‚echten‘Dokumente zugreifen können ein".

In Node.js das wie folgt aussieht:

db.list({startkey:'a', include_docs:true}, function(err, data) { console.log(data); })

Alternativ können Sie create and index, dass Sie Teile Ihrer Datenbank abfragen und zurückkehren lassen. Entwurfsdokumente werden für Indexierungszwecke nicht berücksichtigt und erscheinen daher nicht in der Ergebnismenge.

+0

Danke, der Startschlüssel ist ideal. – Jake