it-swarm.com.de

Model.find () kehrt in Mungo leer zurück

ich arbeite an Mungo, um alle Daten einer Sammlung in einer Datenbank in Mongodb aufzulisten:

von den Anfragen:

http://localhost:3000/listdoc?model=Organization

ich mache den folgenden Code:

exports.listDoc = function(req, res) {    
var Model = mongoose.model(req.query.model); //This is defined and returns my desired model name
        Model.find().populate('name').exec(function(err, models) {
            if (err) {
                res.render('error', {
                    status: 500
                });
            } else {
                res.jsonp(models);
            }
        });
};

Ich habe meinen Eintrag bereits in der Datenbank Der obige Code wird jedoch leer zurückgegeben. Warum?

BEARBEITEN: Der folgende Code wird ebenfalls leer zurückgegeben:

exports.listDoc = function(req, res) {
    var Model = mongoose.model(req.query.model);
    Model.find({},function(err,models){
        console.log(models);
         if (err) {
            res.render('error', {
                status: 500
            });
        } else {
            res.jsonp(models);
        }
    });
};

verwendetes Schema:

var Organization = mongoose.Schema({
  name: String
});
21
codeofnode

Ihr Problem ist mongoose Sammlungen. Mongoose fragt "Organisationen" ab, aber Ihre Daten sind in Mongodb als "Organisation" angegeben. Lass sie zusammenpassen und du solltest gut sein. Sie können es entweder in Mongodb über die Mongo-Shell umbenennen oder dem Mungo davon erzählen. Aus den Mungo-Dokumenten:

var schema = new Schema({ name: String }, { collection: 'actor' });

// or

schema.set('collection', 'actor');

// or

var collectionName = 'actor'
var M = mongoose.model('Actor', schema, collectionName)
63
Peter Lyons

Ich werde Peter Lyons einfacher antworten lassen, nur den Namen der Mongodb-Sammlung hinzufügen (s letter). Wenn Sie beispielsweise eine Sammlung erstellen, die Sie Benutzer oder Kennwort aufrufen möchten, schreiben Sie einfach s Buchstaben in den letzten Teil von Word (users. _, Kennwörter).

0
Levon

Aus offiziellen doc

Population ist der Prozess des automatischen Ersetzens des angegebenen Pfade im Dokument mit Dokument (en) aus anderen Sammlungen.

Versuchen Sie es ohne zu bevölkern

Model.find({}).exec(function(err, models) {
            if (err) {
                res.render('error', {
                    status: 500
                });
            } else {
                res.json(models);
            }
        });
0
hawk