Entendendo Relacionamentos e Chaves Estrangeiras no Mongoose

No MongoDB / Mongoose, como defino um relacionamento? Eu acho que existem algumas maneiras que eu já vi, mas não tenho certeza se entendi as diferenças ou quando eu uso. Eu estou usando o Mongoose 3

Eu definiTodo eTodoList modelo, onde a relação é óbvia. Então seguindo os docshttp://mongoosejs.com/docs/documents.htmlEu defini classes como:

# Todo.coffee
mongoose = require "mongoose"

todoSchema = mongoose.Schema
    name: String
    desc: String
    dueOn: Date
    completedOn: Date

module.exports = mongoose.model "Todo", todoSchema

# TodoList.coffee

mongoose = require "mongoose"
Todo = require "./Todo"

todoListSchema = mongoose.Schema
    name: String
    todos: [Todo.schema]

module.exports = mongoose.model "TodoList", todoListSchema

Então eu tentei testar as classes:

list = new TodoList
    name: "List 1"
    todos: [
        { name: "Todo 1", desc: "Hello", dueOn: new Date(2012,10,1), completedOn: new Date(2012,10,2) }
        { name: "Todo 2" }
        { name: "Todo 3", desc: "Hello 2", dueOn: new Date(2012,10,6), completedOn: new Date(2012,10,2) }
        { name: "Todo 4" }
    ]
#list.todos.push { name: "Todo 5" }
console.log "List", list
list.save (err) ->
    if !err
        TodoList.find {}, (err, lists) ->
            console.log "TODOS"
            console.log lists.length, lists
            done(err)
    else 
        console.log "ERROR!!!"
        done err

Quando eu tento fazerTodo.find() Eu não recebo nada, então o modelo (Todo.coffee) é meio redundante? Parece queTodo são armazenados emTodoList, como usuário eu posso não me importar, mas eu me pergunto quais são as implicações? Por exemplo. o documento ficará muito grande? 1 TodoList com muitos Todos? Isso importa? E se eu permitir Todos (não que eu queira fazer isso apenas para entender), é melhor armazenar documentos separadamente? Como faço isso, se assim o desejar, e quando faço isso?

Eu vi outro método, em Mongoose 2, na verdade, não sei se é possível em 3, algo como usarObjectId em vez de documentos aninhados. Talvez seja para armazená-lo separadamente?

questionAnswers(1)

yourAnswerToTheQuestion