매우 간단한 일대 다 관계가 있는데, User
의 목록은 Alerts
입니다. 이를 위해, 나는 다음과 같은 스키마 정의했습니다 : 이제몽구스를 사용하여 Node.js에 일대 다 관계를 저장합니다.
var userSchema = new Schema({
email: String,
alerts: [{type: Schema.Types.ObjectId, ref: 'Alert'}]
});
var User = mongoose.model('User', userSchema);
var alertSchema = new Schema({
_creator: {type: Schema.Types.ObjectId, ref: 'User'},
value: String,
});
var Alert = mongoose.model('Alert', alertSchema);
을, 나는 새로운 Alert
를 생성하고 데이터베이스에서 기존 User
에 추가하는 함수를 만들려고 해요. 나는 데이터베이스를 검사 할 때
function createAlertForUser(userId, value) {
User.findOne({_id: userId}, function (error, user) {
var alert = new Alert({
_creator: userId,
value: value
});
alert.save(function (error, alert) {
// push it to the user
user.alerts.push(alert);
user.save(function(error) {
console.log("saved");
});
});
});
}
그러나, 내가 경고의 사용자 목록에 null 값을 저장하는 것 같다 : 다음 코드 (코드가 짧은 때문에 오류 처리를 제거)를 가지고있다. 내가 누락 된 아이디어가 있습니까?
userId가 여기에 사용될 때 이미 ObjectId인지 확실합니까? – Paul