university tutorial example descargar caracteristicas mongodb

tutorial - ¿Cómo ordena MongoDB los registros cuando no se especifica un orden de clasificación?



mongodb university (2)

Cuando ejecutamos una búsqueda de Mongo find () sin ningún orden de clasificación especificado, ¿qué usa la base de datos internamente para ordenar los resultados?

De acuerdo con la documentación en el sitio web de mongo :

Al ejecutar un find () sin parámetros, la base de datos devuelve los objetos en orden natural directo.

Para las tablas estándar, el orden natural no es particularmente útil porque, aunque el orden es a menudo cercano al orden de inserción, no se garantiza que lo sea. Sin embargo, para las Colecciones limitadas, se garantiza que el orden natural será el orden de inserción. Esto puede ser muy útil.

Sin embargo, para las colecciones estándar (colecciones no limitadas), ¿qué campo se utiliza para ordenar los resultados? ¿Es el campo _id o algo más?

Editar:

Básicamente, supongo que lo que intento obtener es que si ejecuto la siguiente consulta de búsqueda:

db.collection.find({"x":y}).skip(10000).limit(1000);

En dos momentos diferentes en el tiempo: t1 y t2 , obtendré diferentes conjuntos de resultados:

  1. ¿Cuándo no ha habido escrituras adicionales entre t1 y t2?
  2. ¿Cuándo ha habido nuevas escrituras entre t1 y t2?
  3. Hay nuevos índices que se han agregado entre t1 y t2?

He realizado algunas pruebas en una base de datos temporal y los resultados que obtuve son los mismos ( ) para los 3 casos, pero quería estar seguro y estoy seguro de que mis casos de prueba no fueron muy exhaustivos.


Por definición, el orden predeterminado es indefinido , al igual que el orden de devolución de los documentos. Si no hay consulta, usará el orden natural . Los resultados se devuelven en el orden en que se encuentran , que pueden coincidir con el orden de inserción (pero no se garantiza que así sea) o el orden de los índices utilizados.

Algunos ejemplos que afectarán el orden de almacenamiento (natural):

  • si los documentos se actualizan y no encajan en su espacio asignado actualmente, se moverán
  • Se pueden insertar nuevos documentos en espacios disponibles creados por documentos eliminados o movidos

Si se utiliza un índice, los documentos se devolverán en el orden en que se encuentran. Si se utiliza más de un índice, el orden depende internamente de qué índice identificó por primera vez el documento durante el proceso de deduplicación.

Si desea un pedido específico , debe incluir un orden con su consulta.

La excepción señalada para el orden natural de las colecciones limitadas se debe a que los documentos no se pueden mover y se almacenan en orden de inserción. El pedido es parte de la función de colección con tope que asegura que los documentos más antiguos "envejezcan" primero. Además, los documentos no se pueden eliminar ni mover en una colección con tope (consulte Uso y restricciones para obtener más información).


Se devuelve en el orden almacenado (orden en el archivo), pero no se garantiza que estén en el orden insertado. No están ordenados por el campo _id. A veces puede parecer que está ordenado por el orden de inserción, pero puede cambiar en otra solicitud. No es confiable.