Ainda sou novo no Node, Mongoose e Mongo, mas acho que posso responder pelo menos parte da sua pergunta. :)
Seu método atual é o mesmo que tentei fazer no início. Basicamente, ele acaba armazenando de forma bem parecida com isso (escrito em JS, já que não conheço CoffeeScript):
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
name: String,
desc: String,
dueOn: Date,
completedOn: Date
}]
});
Mais tarde, encontrei este método, que é o que eu estava procurando, e acho que você pretendia:
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Todo' //Edit: I'd put the schema. Silly me.
}]
});
Isso armazena uma matriz de ObjectIds, que você pode carregar usando
Query#populate
em Mangusto. Não sei das implicações técnicas, mas faz mais sentido no meu cérebro se eu as mantiver separadas, então é isso que estou fazendo. :)
Edit:Aqui estão alguns documentos oficiais que podem ser úteis:http://mongoosejs.com/docs/ populate.html