Todavía soy nuevo en Node, Mongoose y Mongo, pero creo que puedo abordar al menos parte de su pregunta. :)
Su método actual es el mismo que intenté hacer al principio. Básicamente, termina almacenándolo de manera muy similar a esto (escrito en JS, ya que no conozco CoffeeScript):
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
name: String,
desc: String,
dueOn: Date,
completedOn: Date
}]
});
Más tarde encontré este método, que es lo que estaba buscando, y creo que lo que pretendías:
var todoListSchema = new mongoose.Schema({
name: String,
todos: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Todo' //Edit: I'd put the schema. Silly me.
}]
});
Esto almacena una matriz de ObjectIds, que luego puede cargar usando Query#populate
en Mangosta.
No conozco las implicaciones técnicas, pero tiene más sentido en mi cerebro si las mantengo separadas, así que eso es lo que estoy haciendo. :)
Editar:aquí hay algunos documentos oficiales que pueden ser útiles:http://mongoosejs.com/docs/ poblar.html