Tôi đang cố gắng xác định lược đồ của db của tôi trong mongoose. Tại thời điểm này, tôi thực hiện điều này:Mongoose: Truyền đến ObjectId không thành công cho giá trị
var Schema = mongoose.Schema;
var today = new Date(2011, 11, 12, 0, 0, 0, 0);
var personSchema = new Schema({
_id : Number,
name: { type: String, required: true },
tel: { type: String, required: true },
email: { type: String, required: true },
newsitems: [{ type: Schema.Types.ObjectId, ref:'NewsItem'}]
});
var taskSchema = new Schema({
_id: Number,
description: { type: String, required: true },
startDate: { type: Date, required: true },
newsitems: [{ type: Schema.Types.ObjectId, ref:'NewsItem'}]
});
var newsSchema = new Schema({
_id: Number,
creator : { type: Schema.Types.ObjectId, ref: 'Person' },
task : { type: Schema.Types.ObjectId, ref: 'Task' },
date: { type: Date, required:true },
loc: {type: String, required: true }
});
var NewsItem = mongoose.model('NewsItem', newsSchema);
var Person = mongoose.model('Person', personSchema);
var Task = mongoose.model('Task', taskSchema);
var tony = new Person({_id:0, name: "Tony Stark", tel:"234234234", email:"[email protected]" });
var firstTask = new Task({_id:0, description:"Get an interview with the president", startDate:today});
var newsItem1 = new NewsItem({_id:0, creator: tony.id, task: firstTask.id, date: today, loc: "NY"});
newsItem1.save(function (err) {
if (err) console.log(err);
firstTask.save(function (err) {
if (err) console.log(err);
});
tony.save(function (err) {
if (err) console.log(err);
});
});
NewsItem
.findOne({ loc: "NY" })
.populate('creator')
.populate('task')
.exec(function (err, newsitem) {
if (err) console.log(err)
console.log('The creator is %s', newsitem.creator.name);
})
Tôi tạo các lược đồ và cố lưu một số dữ liệu.
Lỗi:
{ message: 'Cast to ObjectId failed for value "0" at path "creator"',
name: 'CastError',
type: 'ObjectId',
value: '0',
path: 'creator' }
tôi đã viết mã này dựa trên: http://mongoosejs.com/docs/populate.html#gsc.tab=0
Các db tôi cố gắng tạo ra vẻ như thế này: Specify schema in mongoose.
Làm cách nào để khắc phục sự cố này?
thx để được trợ giúp, mặc dù khi truy vấn và điền, tôi gặp lỗi. Bạn có biết tôi đã làm gì sai không? (đã cập nhật câu hỏi) – Ojtwist
Bạn đã lưu chúng chưa? Nó có vẻ như nó sẽ làm việc, trừ khi nó tải một mục tin tức trước đó đã được lưu mà không có một người sáng tạo. – numbers1311407
Tôi chỉ nói thêm rằng, mặc dù tôi nghĩ rằng tôi đang làm sai. – Ojtwist