首页 > 解决方案 > MongoDB - 无法在 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"

标签: mongodbmongo-shell

解决方案


你的意思是做var a = db.server.find().sort({_id:-1}).limit(1)吗?(server而不是patches

无论如何,find 返回一个 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.


推荐阅读