Tôi vẫn chưa quen với Node, Mongoose và Mongo, nhưng tôi nghĩ rằng tôi có thể giải quyết ít nhất một phần câu hỏi của bạn. :)
Phương pháp hiện tại của bạn cũng giống như lúc đầu tôi đã thử. Về cơ bản, nó kết thúc việc lưu trữ nó rất giống với điều này (được viết bằng JS, vì tôi không biết CoffeeScript):
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
name: String,
desc: String,
dueOn: Date,
completedOn: Date
}]
});
Sau đó, tôi đã tìm thấy phương pháp này, đó là những gì tôi đang tìm kiếm và tôi nghĩ bạn đang có ý định gì:
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Todo' //Edit: I'd put the schema. Silly me.
}]
});
Điều này lưu trữ một mảng ObjectIds, sau đó bạn có thể tải bằng cách sử dụng Query#populate
trong Mongoose.
Tôi không biết về các hàm ý kỹ thuật, nhưng nó sẽ có ý nghĩa hơn trong não của tôi nếu tôi giữ chúng tách biệt, vì vậy đó là những gì tôi đang làm. :)
Chỉnh sửa:Đây là một số tài liệu chính thức có thể hữu ích: http://mongoosejs.com/docs/ populate.html