MongoDB - 无法在 Mongo Shell 中获取对象的键值

MongoDB - Unable to get an object's key's value in Mongo Shell

下面的脚本是运行在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"]) 

为什么显示 unknown type 而不是 "n/a"

您是要 var a = db.server.find().sort({_id:-1}).limit(1) 吗? (server 而不是 patches

无论如何,find returns a cursor。游标的工作方式是,当你调用它时,它会打印它指向的当前文档并移动到下一个,所以你需要迭代它,调用 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.