2014-11-05 3 views
0

두 가지 모델이 있습니다. 사용자와 블록이 있습니다. 사용자는 여러 블록을 가질 수 있으며 두 모델간에 이러한 관계를 매핑하는 방법이 필요합니다. 나는 몽구스 문서에 populations를 가로 질러 와서 내 스키마와 그 설정하려고 : 나는 블록을 저장할 때Mongodb - Mongoose 인구와의 관계 매핑

var mongoose = require('mongoose'); 

module.exports = mongoose.model('User',{ 
    username:String, 
    password:String, 
    email:String, 
    blocks:[{type: mongoose.Schema.Types.ObjectId, ref:'Block'}] 
}); 

그리고 :

var mongoose = require('mongoose'); 

module.exports = mongoose.model('Block',{ 
    _creator:{type:mongoose.Schema.Types.ObjectId, ref:'User'}, 
    name:String, 
}); 

/models/user.js에서 :

/models/block.js에서

router.post('/block/new',function(req,res){ 
    var block; 
    block = new Block({ 
    name = req.body.name, 
    _creator = req.session.user 
    }); 
}); 

... the _creator attribu te는 콜렉션에 저장되지 않습니다. 블록이 저장되는지 확인할 수 있습니다. 콘솔로 가서 블록 (db.blocks.find())을 검색하면 새 블록이 나타나지만 블록 작성자에 대한 참조는 표시되지 않습니다. 왜 이것이 작동하지 않습니까?

답변

0

나는 무슨 일이 일어나고 있는지 알아 냈습니다. 이드는 req.session.user에 문자열로 저장되었습니다. 나는 그것을 당길 필요가 있었다 req.user._id

관련 문제