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?¿Cómo ordena MongoDB los registros cuando no se especifica un orden de clasificación?
De acuerdo con la documentation on the mongo website:
Al ejecutar un find() sin ningún parámetro, la base de datos devuelve objetos en orden natural hacia adelante.
Para las tablas estándar, orden natural no es particularmente útil porque, aunque el orden es a menudo cerca de orden de inserción, no es garantiza que sea. Sin embargo, para las Colecciones limitadas, el orden natural es con la garantía de ser el pedido de inserción. Esto puede ser muy útil.
Sin embargo, para colecciones estándar (colecciones no cubiertas), ¿qué campo se utiliza para ordenar los resultados? ¿Es el campo _id o algo más?
Editar:
Básicamente, creo que lo que estoy tratando de llegar es que si ejecuta la siguiente consulta de búsqueda:
db.collection.find({"x":y}).skip(10000).limit(1000);
en dos puntos diferentes en el tiempo: t1 y t2, tendrá que obtener diferentes conjuntos de resultados:
- Cuando no ha habido escrituras adicionales entre t1 & t2?
- ¿Cuándo ha habido nuevas escrituras entre t1 & t2?
- ¿Hay nuevos índices que se hayan añadido entre t1 & t2?
he ejecutar algunas pruebas en una base de datos temporal y los resultados que he obtenido son los mismos (Sí) para todos los 3 casos - pero quería estar seguro y estoy seguro de que mis casos de prueba no eran muy completo
Esto significa que si ejecuto el mismo comando find: db.collection.find ({"x": y}). Skip (20000) .limit (1000) en dos momentos diferentes en el tiempo, lo haré obtener diferentes conjuntos de resultados? ¿Qué sucede si no ha habido escrituras entre los dos comandos? – saurabhj
@saurabhj: Se agregaron algunos ejemplos que afectarán el orden natural. Si los documentos se han movido/eliminado, puede obtener diferentes conjuntos de resultados. Si no ha habido inserciones/actualizaciones/eliminaciones de documentos, debe obtener el mismo resultado. Agregar índices no afecta la ubicación de los documentos en el disco. – Stennie
También debería agregarse la advertencia de que si usa [replicación] (http://www.mongodb.org/display/DOCS/Replication), el orden natural puede variar entre los miembros del conjunto de réplicas. – Stennie