Zunächst einmal, keine Sorge, es ist ein winziger Datensatz - ich weiß, es wäre nicht klug, eine gesamte Produktions-DB über eine API auf einen einzigen Bildschirm zu dumpen ... Ich brauche nur einen JSON-Dump der gesamten (kleinen) DB, um über einen API-Endpunkt in einer Node.js-Anwendung zurückzukehren.Zeigen Sie den gesamten MongoDB Inhalt in Node.js API
Meine Anwendung erfolgreich einzelne Datensätze mit diesem Code zurückgibt:
MongoClient.connect("mongodb://localhost:27017/search", function (err, db) {
if(err) throw err;
db.collection('results', function(err, collection) {
// search for match that "begins with" searchterm
collection.findOne({'string':new RegExp('^' + searchterm, 'i')}, function(err, items){
// get result
var result;
if (items == null || items.result == null){
result = "";
}
else {
result = items.result;
}
// return result
res.send(result);
});
});
});
So weiß ich, Knoten erfolgreich zu Mongo spricht, aber wie kann ich diese Abfrage/Code optimieren, um im Grunde zurückgeben, was Sie bekommen, wenn Sie ausführen Folgendes in der MongoDB-Befehlszeile:
$ db.results.find()
Ich bin sehr gespannt, warum Sie 'toArray' aufsetzen müssen. Möchten Sie wissen, welche Version von MongoDB/Mongoose Sie verwenden? –
Ich werde ehrlich sein, ich habe keine Ahnung, was Mungo ist. Ich verwende v3.2.0 von MongoDB unter Mac OS X Sierra. Ich habe mich anArray (...) gewöhnt, denn nach einer Menge zufälliger Versuche ist dies das erste, was funktioniert hat. Wenn Sie eine richtige Alternative vorschlagen, werde ich es versuchen. – HomerPlata
Mongoose ist ein Wrapper um MongoDB für JavaScript/Node.js, der Dinge in leicht wartbaren und lesbaren Code abstrahiert. Ich denke, deshalb hat meine vorgeschlagene Lösung nicht funktioniert. Mungo macht wahrscheinlich genau das, was Sie getan haben: 'toArray()' intern. –