hay algunas preguntas acerca de cómo guardar un resultado de una consulta en un javascript varialbe, pero no soy capaz de ponerlas en práctica. El punto es que tengo un tanto difícil de consulta, por lo que esta pregunta es, en mi opinión, la única.

Aquí está el problema. Tengo una colección namend «unidades» y una clave denominada «driveDate». Necesito guardar 1 variable con el más pequeño de la fecha, y otros con el mayor fecha.

La consulta para los más pequeños de la fecha es:

> db.drives.find({},{"_id":0,"driveDate":1}).sort({"driveDate":1}).limit(1)

El resultado es:

{ "driveDate" : ISODate("2012-01-11T17:24:12.676Z") }

cómo dan puedo guardar esto para una variable, puedo hacer algo como:

tmp = db.drives.find({},{"_id":0,"driveDate":1}).sort({"driveDate":1}).limit(1)

Gracias!!!

  • Dónde está tu consulta que se ejecuta? Es en el lado del servidor? O es que se ejecute en el cliente final?
  • la consulta es directa en el mongo de la consola. (con el comando «mongo»). El DB es localmente instalado en mi máquina. Ya he descubierto cómo hacerlo. gracias.
InformationsquelleAutor otmezger | 2012-12-02

2 Comentarios

  1. 11

    Suponiendo que usted está tratando de hacer esto en la shell:

     tmp = db.drives.find({}, {_id:0, driveDate:1}).sort({driveDate:1}).limit(1).toArray()[0]

    find devuelve un cursor que necesitas recorrer para recuperar los documentos reales. Llamar toArray en que el cursor se convierte en una matriz de docs.

    • Yo estoy seguro de si sort() obras en findOne ya que no devuelve un cursor, como tal, la cadena no tendrá ninguna función de sort()
    • Hola, gracias por tu respuesta. Me sale este error: «Sun Dec 2 21:58:13 TypeError: db.unidades.findOne({}, {_id:0, driveDate:1}).especie no es una función (shell):1″… de alguna manera findOne no puede trabajar con orden
    • Lo siento, Sam, la de la derecha, no parece ser una manera de ordenar con findOne en el shell. Ver respuesta actualizada.
  2. 3

    Después de algún tiempo de averiguar, tengo la solución. aquí está, para referencia futura:

    var cursor = db.drives.find({},{"_id":1}).sort({"driveDate":1}).limit(1)

    Entonces puedo obtener el documento desde el cursor como este

    var myDate = cursor.next()

    Que es. Gracias por su ayuda

Dejar respuesta

Please enter your comment!
Please enter your name here