当名称包含' - '时,无法从shell访问MongoDB集合

Jim*_* GB 1 mongodb mongodb-shell

我在MongoDB 2.6.9中有一个名为GoldenGlobes-emotion的集合我发现我无法从MongoDB shell访问此集合当我尝试访问该集合时,例如

db.GoldenGlobes-emotion.findOne()
Run Code Online (Sandbox Code Playgroud)

我总是得到这个:

ReferenceError: emotion is not defined
Run Code Online (Sandbox Code Playgroud)

但是当我使用PyMongo访问Python的集合时,它运行良好.这是一个shell bug吗?或者' - '是保留字符?

Phi*_*ipp 5

试试db["GoldenGlobes-emotion"].findOne().

MongoDB shell是一个Javascript解释器.Javascript不允许变量名中的连字符,因为它将它们解释为减号运算符.但是,您也可以使用array-syntax访问具有字符串文字的对象字段.在这种情况下,此限制不适用.