2017-01-05 12 views
0

私はMongoDB/Mongooseを使い慣れていて、ユーザーをサイトコレクションと照合しようとしています。アイデアは、ユーザーがサイトに割り当てられているということです。サイトコレクションに格納されているIDに基づいてこのユーザー名を取得して表示する必要があります。ユーザー名は変更できるので、私はサブ文書を使うことができません。ノード、Mongoose js - 結果を返すことはありません

populateを使用してユーザー名をクエリにバインドしようとすると、クエリは決して結果を返しません。エラーも何もない誰かがそれをハングと呼ぶことができますが、それは非同期なので、バックグラウンドで何をしているのか分かりません。

私の認証システムは、passport.jsです。ここ

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; 

そして、私のクエリです:: - しばらくの間、この上で立ち往生されて

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

任意のアイデアが

は、ここに私のモデルです。

答えて

0

を使用してください。これは、データを設定します。

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

同じ結果です。私は通常、とにかくexecを使用せず、常に結果を得ます。 – Kyle

+0

は編集したばかりです)。見つけた後に.populate –

+0

それは働いた。 –

関連する問題