MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come memorizzare il risultato della query (un singolo documento) in una variabile?

Devi usare var così:

> var a = db.col.find().limit(1)
{ "_id" : ObjectId("52dfccba5fd17fe6a4d0051a"), "a" : 16807, "b" : 475249 }
> a
{ "_id" : ObjectId("52dfccba5fd17fe6a4d0051a"), "a" : 16807, "b" : 475249 }

Facendo alcuni test ho notato che find() sembra che il metodo stia impostando la variabile su un cursore. In questi casi, perdi la variabile dopo l'istruzione successiva.

> var a = db.col.find().limit(1)
{ "_id" : ObjectId("52dfccba5fd17fe6a4d0051a"), "a" : 16807, "b" : 475249 }
> var b = 'test'
> a
>

Se hai bisogno di mantenere la variabile in giro più a lungo, prova ad iterare esplicitamente la variabile prima di impostarla usando toArray() .

> var a = db.col.find().limit(1).toArray()
{ "_id" : ObjectId("52dfccba5fd17fe6a4d0051a"), "a" : 16807, "b" : 475249 }
> var b = 'test'
> a
[
  {
    "_id" : ObjectId("52dfccba5fd17fe6a4d0051a"),
    "a" : 16807,
    "b" : 475249
  }
]