MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment stocker le résultat de la requête (un seul document) dans une variable ?

Vous devez utiliser var comme ça :

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

En faisant quelques tests, j'ai remarqué que le find() La méthode semble définir la variable sur un curseur. Dans ces cas, vous perdez la variable après la prochaine instruction.

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

Si vous devez conserver la variable plus longtemps, essayez d'itérer explicitement la variable avant de la définir à l'aide de 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
  }
]