Por ejemplo
En lugar de un campo denominado COLUMN_1
, que contiene un documento incrustado con los campos A, B y C.
¿Por qué no 3 campos separados con los nombres COLUMN_1_A
, COLUMN_1_B
, COLUMN_1_C
?
En mongoDB, prefiere trabajar con documentos de la forma en que existen naturalmente, por supuesto, puede crear rutinas que se pueden traducir cada vez y ensamblar/desensamblar el documento:
COLUMN_1:{A:X,B:Y,C:Z}
para:
COLUMN_1_A:X,COLUMN_1_B:Y,COLUMN_1_C:Z
Pero este es un trabajo adicional que no desea hacer cada vez, es un desarrollador perezoso y efectivo que prefiere simplemente almacenar su documento json de la forma en que se usará a menos que haya un caso de uso específico que tenga sentido para hacerlo de esta manera. :)
Además, tenga en cuenta que la incrustación es posible hasta 100 niveles, pero el tamaño máximo del documento todavía está limitado a 16 MB, por lo que en su modelo de documento no se espera que incruste toda su base de datos en un solo documento...
Cuando necesitas rendimiento, agregas índices y optimizas consultas, de esa forma tus datos más buscados quedan en memoria, no hay gran diferencia si tus campos están incrustados o en la raíz si no están indexados...