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

Encontrar el siguiente documento en MongoDb

Es mejor agregar sort() explícito criterios si desea un orden predecible de resultados.

Suponiendo que el orden que está buscando es "orden de inserción" y está utilizando los ObjectId generados por defecto de MongoDB, entonces puede consultar en función del ObjectId:

// Find next product created
db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142") }}).limit(1)

Tenga en cuenta que este ejemplo solo funciona porque:

  • los primeros cuatro bytes del ObjectId se calculan a partir de una marca de tiempo de estilo Unix (ver:Especificación de ID de objeto )
  • una consulta en _id solo usará el _id predeterminado index (ordenado por id) para encontrar una coincidencia

Realmente, este tipo implícito es lo mismo que:

db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142" )}}).sort({_id:1}).limit(1);

Si agregó más criterios a la consulta para calificar cómo encontrar el "próximo" producto (por ejemplo, una category ), la consulta podría usar un índice diferente y el orden podría no ser el esperado.

Puede verificar el uso del índice con explain() .