Depende muito do relacionamento entre seus objetos (ou seja, a proporção do número de objetos em cada lado do relacionamento e a frequência das atualizações), portanto, depende do seu aplicativo e dos requisitos.
Um bom recurso para olhar (que você pode tomar como 'melhor prática') é o blog do MongoDB sobre desnormalização:
http:// /blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1
http:// /blog.mongodb.org/post/87892923503/6-rules-of-thumb-for-mongodb-schema-design-part-2
http:// /blog.mongodb.org/post/88473035333/6-rules-of-thumb-for-mongodb-schema-design-part-3
resumindo, porque é um assunto amplo:estamos falando da relação N-N, e depende da proporção de N's
Se os objetos forem imutáveis, é recomendável aninhá-los em outro objeto, pois você não terá que lidar com atualizações e a pesquisa é trivial.
Se os objetos não forem imutáveis, você deve ponderar o custo das atualizações versus o custo de pesquisar em uma coleção para pesquisar o ID e, em seguida, pesquisar na outra coleção os objetos associados a esse/esses IDs.