Все още съм нов в Node, Mongoose и Mongo, но мисля, че мога да отговоря поне на част от вашия въпрос. :)
Текущият ви метод е същият, както се опитах да направя в началото. По принцип в крайна сметка го съхранява много подобно на това (написано на JS, тъй като не знам CoffeeScript):
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
name: String,
desc: String,
dueOn: Date,
completedOn: Date
}]
});
По-късно намерих този метод, който е това, което търсех, и мисля, че какво възнамерявате:
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Todo' //Edit: I'd put the schema. Silly me.
}]
});
Това съхранява масив от ObjectIds, които след това можете да заредите с помощта на Query#populate
в Mongoose.
Не знам за техническите последици, но за моя мозък има повече смисъл, ако ги държа отделно, така че това е, което правя. :)
Редактиране:Ето някои официални документи, които може да са полезни:http://mongoosejs.com/docs/ populate.html