2017-01-05 4 views
0

Ich bin neu in MongoDB/Mongoose, und ich versuche, einen Benutzer mit einer Websitesammlung zusammenzubringen. Die Idee ist, dass der Benutzer einer Site zugewiesen ist. Ich möchte diesen Benutzernamen basierend auf einer in der Websitesammlung gespeicherten ID abrufen und sie dann anzeigen. Der Benutzername kann sich ändern, daher kann ich keine subdocs verwenden.Knoten, Mongoose js - Populate gibt nie ein Ergebnis zurück

Bei dem Versuch, den Benutzernamen mithilfe von "pollulate" an meine Abfrage zu binden, gibt die Abfrage niemals ein Ergebnis zurück. Keine Fehler, nichts. Man könnte es einen Hang nennen, aber es ist asynchron, also was auch immer Mongo im Hintergrund tut, weiß ich nicht.

Mein Authentifizierungssystem ist pass.js.

Hier ist meine Modelle:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var passportLocalMongoose = require('passport-local-mongoose'); 

var Account = new Schema({ 
    username: String, 
    password: String, 
    isadmin: Boolean, 
    islocked: Boolean 
}); 

Account.plugin(passportLocalMongoose); 

module.exports = mongoose.model('Account', Account); 


var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var siteSchema = new Schema({ 
    title: String, 
    locked: Boolean, 
    userid: {type: mongoose.Schema.Types.ObjectId, ref: 'Account'} 
}); 

var Site = mongoose.model('Site', siteSchema); 

module.exports = Site; 

Und hier ist meine Frage:

Site.find({}.populate('userid'), function (err, postIn) { 
    if (err) { 
     throw err 
    } else { 
     res.send(postIn); 
    } 
}); 

Irgendwelche Ideen - wurde auf diese für eine Weile fest.

Antwort

0

Verwendung .exec. Es konfiguriert das Populate.

Site.find({}).populate('userid').exec(function (err, postIn) { 
     if (err) { 
      throw err 
     } else { 
      res.send(postIn); 
     } 
    }); 
+0

Kein Unterschied, dasselbe Ergebnis. Normalerweise benutze ich sowieso keine Exec und bekomme immer ein Ergebnis. – Kyle

+0

gerade bearbeitet fehlt die) nach finden vor .populate –

+0

hat es funktioniert .. –

Verwandte Themen