ฉันไม่สามารถเติมข้อมูลในช่องผู้สร้างด้วยตนเองหรือโดยอัตโนมัติในวัตถุที่บันทึกใหม่ ... วิธีเดียวที่ฉันจะพบคือการสืบค้นวัตถุที่ฉันมีอยู่แล้วซึ่งฉันไม่ต้องการทำอีกครั้ง
นี่คือการตั้งค่า:
var userSchema = new mongoose.Schema({
name: String,
});
var User = db.model('User', userSchema);
var bookSchema = new mongoose.Schema({
_creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
description: String,
});
var Book = db.model('Book', bookSchema);
นี่คือที่มาดึงผม
var user = new User();
user.save(function(err) {
var book = new Book({
_creator: user,
});
book.save(function(err){
console.log(book._creator); // is just an object id
book._creator = user; // still only attaches the object id due to Mongoose magic
console.log(book._creator); // Again: is just an object id
// I really want book._creator to be a user without having to go back to the db ... any suggestions?
});
});
แก้ไข: พังพอนล่าสุดแก้ไขปัญหานี้และเพิ่มฟังก์ชันการเติมข้อมูลดูคำตอบใหม่ที่ยอมรับ
creator.profile