我有一份像这样的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")
}

不幸的是,由于密钥是数字,所以mongo驱动程序不允许我访问其中一个值的tmin/tmax:
db.Temperatures.findOne().previsions.1000

返回错误:
2017-02-13T11:38:49.371+0100 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:36

有办法绕过这个问题吗?
谢谢。

最佳答案

如果要访问使用数字字符的对象中的键,只需将其作为字符串传递即可—对象始终将其键存储为字符串。

db.Temperatures.findOne().previsions['1000']

会给你这个输出-
{
  "tmin": "3",
  "tmax": "13"
}

10-06 08:29