2011-09-11 22 views
5

¿Cuáles son los beneficios de utilizar objetos incrustados?MongoDB: beneficios del uso de objetos incrustados

En mi práctica, es muy raro que no use objetos incrustados fuera de mi padre. Me refiero a un ejemplo común con comments que están incrustados en la publicación: Necesito mostrar los últimos comentarios en la lista de actualizaciones, necesito mostrar comentarios para current_user, etc. Por lo tanto, los comentarios no se pueden incrustar o sería un fastidio.

Así que hay muy pocos casos de uso cuando necesito usar objetos incrustados.

La pregunta es: ¿por qué debería usar objetos incrustados, incluso en esos raros casos de uso, ¿cuáles son los beneficios de la incrustación?

Respuesta

3

Objetos incrustados es una gran gran ventaja de cualquier base de datos nosql. Por lo general, incrustación = rendimiento de lectura + escalabilidad. Tomemos por ejemplo SO. Puede incrustar comentarios de pregunta/respuesta dentro de la pregunta, documento de respuesta. Y significa que no necesita unir comentarios cuando necesite mostrar respuestas/preguntas. Si no necesita unirse, puede mover la colección a una computadora separada para acelerar su aplicación. En la base de datos relacional, los subobjetos generalmente se convierten en una tabla separada (excepto la desnormalización). Y en mi práctica hay muchísimos casos en los que necesito incrustar documentos.

Pero no es para todos los casos incrustado buen ajuste, es cierto acerca de "dolor en el culo" con ebedding en algunas situaciones. ¡No necesitas incrustar todo! En su caso, simplemente cree una colección separada para comentarios o ...

Hay otro concepto bien conocido en el mundo nosql: desnormalización.

necesito para mostrar los últimos comentarios en la lista de cambios

Está bien, si necesita más puede insertar últimos comentarios en su colección cambios a visualización rápida él.

necesito para mostrar los comentarios de current_user

Está bien, los comentarios de los usuarios embedd en los objetos de usuario.

Por cierto, la desnormalización suele ser un proceso asíncrono, porque escribir un objeto en muchas colecciones puede provocar problemas de rendimiento de escritura.

Afortunadamente, mi respuesta le dará algunas ideas.

+0

Sí, lo hizo! Gracias :) – fl00r

+0

@ fl00r: de nada. –

Cuestiones relacionadas