MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como armazenar o resultado da consulta (um único documento) em uma variável?


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

Fazendo alguns testes, notei que o find() método parece estar definindo a variável para um cursor. Nesses casos, você perde a variável após a próxima instrução.
> var a = db.col.find().limit(1)
{ "_id" : ObjectId("52dfccba5fd17fe6a4d0051a"), "a" : 16807, "b" : 475249 }
> var b = 'test'
> a
>

Se você precisar manter a variável por mais tempo, tente iterar explicitamente a variável antes de configurá-la 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
  }
]