query queries examples example mongodb node.js

queries - Identificar el último documento del conjunto de resultados find() de MongoDB



query document mongodb (3)

Estoy intentando ''transmitir'' datos desde una instancia de node.js / MongoDB al cliente usando websockets. Todo está funcionando bien.

¿Pero cómo identifico el último documento en el resultado? Estoy usando node-mongodb-native para conectarme a MongoDB desde node.js.

Un ejemplo simplificado:

collection.find({}, {}, function(err, cursor) { if (err) sys.puts(err.message); cursor.each(function(err, doc) { client.send(doc); }); });


Dado que mongodb objectId contiene la fecha de creación, puede ordenar por id, descender y luego usar limit (1):

db.collection.find().sort( { _id : -1 } ).limit(1);

Nota: no estoy familiarizado con node.js, el comando anterior es el comando mongo shell y supongo que puede reescribirlo fácilmente en node.js.


Digamos que tengo colección de empresas. El siguiente fragmento de código me da el último documento de la colección.

db.companies.find ({}, {"_ id": 1}). skip (db.companies.find (). count () - 1);

El código no puede confiar en _id ya que puede no estar en un patrón específico siempre que sea un valor definido por el usuario.


Usa ordenar y limitar, si quieres usar el cursor:

var last = null; var findCursor = collection.find({}).cursor(); findCursor.on("data", function(data) { last = data; ... }); findCursor.on("end", function(data) { // last result in last .... });