8

我正在使用 Robomongo,我在其中手动插入一个对象。

我想在我的对象上有一个字段,即当前日期。通常我习惯Date.now()在Javascript中使用。但是,当我在 Robomongo 工具中使用插入文档表单时,我得到:

Unable to parse JSON:
Expecting '(', at (4, 15).

示例 JSON:

{
    serial: '1231323123',
    game: 'World of Warcraft',
    date: Date.now()
}

知道如何插入此记录吗?

4

2 回答 2

6

如果您将示例直接插入 Robomongo 0.8.4 shell 提示符中,例如插入到game集合中,则您的示例可以正常工作:

db.game.insert({
    serial: '1231323123',
    game: 'World of Warcraft',
    date: Date.now()
})

如果您使用上下文菜单 ( Insert Document...),JSON 解析器将返回您遇到的语法错误。

这里的问题是 JSON 验证当前是使用一个不特定于 MongoDB 的库完成的。由于多种原因(未加引号的键和未加引号的函数值),上述 JSON 无效,但在shell中插入是有效的。mongo

我为此创建了 Robomongo问题 #619。一个相关的 JSON 验证差异是issue #448

在修复 JSON 验证错误之前,我建议改为通过 Robomongo 中的 shell 提示插入这样的文档。

于 2014-07-24T23:40:00.443 回答
3

不幸的是,在这个阶段不可能按照以下 github 问题中的说明执行此操作:

https://github.com/paralect/robomongo/issues/477

... Robomongo 的 JavaScript 引擎与 mongo shell 2.4+ 中默认的 v8 引擎之间存在一些差异。


问题 #520应该通过将 Robomongo 附带的内置 shell 从 SpiderMonkey 更新到 v8(MongoDB 2.4+ 中的默认值)来解决问题。

于 2014-07-23T10:22:47.793 回答