MongoDB - Невозможно получить значение ключа объекта в оболочке Mongo - PullRequest
0 голосов
/ 08 мая 2019

Следующий скрипт запускается в Mongo Shell

db.patches.insert({ _id: 0, name:"n/a",os:"n/a",active:"n/a",created_at:"n/a", modified_at:"n/a"})

var a = db.patches.find().sort({_id:-1}).limit(1)

a

print(a["name"]) 

Почему вместо "n/a" отображается unknown type?

1 Ответ

1 голос
/ 09 мая 2019

Вы хотели сделать var a = db.server.find().sort({_id:-1}).limit(1)?(server а не patches)

В любом случае, find возвращает курсор .Работа курсоров заключается в том, что когда вы вызываете его, он печатает текущий документ, на который он указывает, и перемещается к следующему, поэтому вам нужно выполнить итерацию, вызывая cursor.next().

Когда вы делаете

var a = db.patches.find().sort({_id:-1}).limit(1) a

Вы печатаете курсор, и теперь a.hasNext() равно false.

То, что вы хотите сделать, это:

var a = db.patches.find().sort({_id:-1}).limit(1) print(a.next().name)

или

var a = db.patches.find().sort({_id:-1}).limit(1) print(a.next()['name']).

Любое из перечисленного напечатает n/a.

...