2017-02-17 15 views
0

私はいくつかのネストされた人口を作ろうとしています。ユーザーモデルは、私が期待している方法で作成されます。マングースを入れ子にした人口を扱う方法は?

しかし、ポストモデルのネストされた人口に問題があります。それはまったく投入されていません。

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

mongoose.connect(`mongodb://localhost:27017/testDB`); 

var UserSchema = new Schema({ 
    name:String, 
    post: { 
     type: Schema.Types.ObjectId, 
     ref: 'Post' 
    } 
}); 
var PostSchema = new Schema({ 
    title:String, 
    subscriber:{ 
     type:Schema.Types.ObjectId, 
     ref:'Subscriber' 
    } 
}); 

var SubscriberSchema = new Schema({ 
    name:String 
}); 

var User = mongoose.model("User", UserSchema); 
var Post = mongoose.model('Post',PostSchema); 
var Subscriber = mongoose.model('Subscriber',SubscriberSchema); 

User 
    .find() 
    .populate([{ 
     path:'post', 
     model:'Post', 
     populate:{ 
      model:'Subscriber', 
      path:'subscriber' 
     } 
    }]) 
    .exec() 
    .then(function(data){ 
     console.log(data); 
     mongoose.disconnect(); 
    }); 

答えて

0

あなたは.populateを間違って呼び出しています。これを試してみてください :詳細情報については

User 
 
\t .find() 
 
\t .populate('post') 
 
\t .populate({ 
 
\t \t path: 'post', 
 
\t \t populate: { 
 
\t \t \t path: 'subscriber', 
 
\t \t \t model: 'Subscriber' 
 
\t \t } 
 
\t }) 
 
\t .exec() 
 
\t .then(function (data) { 
 
\t \t console.log(data); 
 
\t \t mongoose.disconnect(); 
 
\t });

thisアウトをご確認ください。

+0

私は違いはありません。 'subscriber'フィールドにはまだ数値が入力されていません – user2397623

+0

@ user2397623 Node.jsとmongooseのバージョンはどちらを使用していますか? –

+0

@ user2397623私はmongoose 4.8.3にあり、ノード6と7です。これは動作します。ここにソースがあります:http://jsbin.com/geyinabumi/1/edit?jsデータが正しくリンクされていることを確認してください(つまり、_idsが一致することを意味します) –

関連する問題