mongodb - 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"
?
解决方案
你的意思是做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
.
推荐阅读
- drupal - D8 - 如何访问节点主体内的自定义块?
- python - 在 url 中使用类别 slug 而不是 pk
- mysql - 如何获得第二次购买的平均值?
- mongodb - mongodb,如何在查询中使用 $not 过滤器
- design-patterns - 现有代码的设计问题(要执行的操作的初始化)
- sql - sql中的any和all子句有什么区别?
- python - 执行python脚本的批处理文件
- python - 如何在二分布局中创建非二分图
- version - 将 pine 脚本版本 4 代码转换为低于 4 的版本?
- xslt-1.0 - 如何在 IBM API 连接中使用 XSLT 从文件中读取数据