sql >> Base de Datos >  >> NoSQL >> MongoDB

¿La mejor manera de organizar subdocumentos en Mongo?

Discuto esto un poco aquí, lea esto primero:68567

Para su caso, la Opción 3 (mantener algunos de los datos en su modelo principal) es probablemente la mejor. La clave es Evitar el crecimiento ilimitado de la matriz .

Esto tiene que ver con cómo Mongodb asigna los documentos. http://docs.mongodb.org/manual/core/storage/ "Cada documento en MongoDB se almacena en un registro que contiene el documento en sí y espacio adicional, o relleno, que permite que el documento crezca como resultado de las actualizaciones".

Cuando el nodo asigna nuevos documentos, asigna espacio según el tamaño del documento insertado y los tamaños de los documentos que ya están en su colección. (Lea más en el enlace anterior). Si tiene algunos documentos que son mucho más grandes que otros, es probable que se fragmenten.

La forma de evitar tener demasiados documentos en la matriz de subdocumentos 'comentarios' es con los comandos $push y $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/

Así que almacene los '5 más recientes' y muéstrelos cuando el elemento se cargue por primera vez. (O el más antiguo, o cualquier otro criterio de clasificación que desee usar). Luego proporcione una forma para que el usuario cargue más, lo que hará un viaje de ida y vuelta por separado a la colección que los tiene todos.