Jeg er stadig ny i Node, Mongoose og Mongo, men jeg tror, jeg kan besvare i det mindste en del af dit spørgsmål. :)
Din nuværende metode er den samme, som jeg prøvede i starten. Grundlæggende ender det med at gemme det meget på samme måde som dette (skrevet i JS, da jeg ikke kender CoffeeScript):
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
name: String,
desc: String,
dueOn: Date,
completedOn: Date
}]
});
Jeg fandt senere denne metode, som jeg ledte efter, og jeg tror, hvad du havde til hensigt:
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Todo' //Edit: I'd put the schema. Silly me.
}]
});
Dette gemmer et array af ObjectId'er, som du derefter kan indlæse ved hjælp af Query#populate
i Mongoose.
Jeg kender ikke til de tekniske implikationer, men det giver mere mening i min hjerne, hvis jeg holder dem adskilt, så det er det, jeg gør. :)
Rediger:Her er nogle officielle dokumenter, der kan være nyttige:http://mongoosejs.com/docs/ populate.html