MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie speichere ich das Abfrageergebnis (ein einzelnes Dokument) in einer Variablen?

Sie müssen var verwenden etwa so:

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

Beim Testen ist mir aufgefallen, dass find() Methode scheint die Variable auf einen Cursor zu setzen. In diesen Fällen verlieren Sie die Variable nach der nächsten Anweisung.

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

Wenn Sie die Variable länger aufbewahren müssen, versuchen Sie, die Variable explizit zu iterieren, bevor Sie sie mit toArray() festlegen .

> 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
  }
]