我有一个看起来像这样的mongo文件
{
"_id" : ObjectId("58a18bdd7313101c38baa06d"),
"date" : "2017-02-12",
"previsions" : {
"1000" : {
"tmin" : "3",
"tmax" : "13"
},
"1090" : {
"tmin" : "3",
"tmax" : "13"
},
"1100" : {
"tmin" : "-1",
"tmax" : "5"
},
"1110" : {
"tmin" : "3",
"tmax" : "12"
},
"1120" : {
"tmin" : "3",
"tmax" : "14"
}
},
"created_at" : ISODate("2017-02-13T10:35:09.804Z")
}
并且我想访问其中一个值的tmin / tmax,不幸的是,因为键是数字,mongo驱动程序不允许我这样做:
db.Temperatures.findOne().previsions.1000
返回错误:
2017-02-13T11:38:49.371+0100 E QUERY [thread1] SyntaxError: missing ; before statement @(shell):1:36
有没有办法绕过这个问题?
非常感谢。
答案 0 :(得分:3)
如果要访问使用数字字符的对象中的键,可以简单地将它们作为字符串传递 - 对象始终将其键存储为字符串。
db.Temperatures.findOne().previsions['1000']
那将为您提供此输出 -
{
"tmin": "3",
"tmax": "13"
}
答案 1 :(得分:1)
根据MongoDB文档
投影文档限制为所有匹配返回的字段 文档。
请尝试在MongoDB shell中执行以下查询
{{1}}