在Robomongo中将包含日期的文档插入集合中

时间:2014-07-23 10:16:01

标签: mongodb robo3t

我正在与Robomongo合作,我手动插入一个对象。

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

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

示例JSON:

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

知道如何插入此记录吗?

2 个答案:

答案 0 :(得分:5)

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

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

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

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

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

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

答案 1 :(得分:3)

不幸的是,在这个阶段,不可能像下面的github问题中所述那样做:

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

  

...... Robomongo的JavaScript引擎和v8引擎之间存在一些差异,这是mongo shell 2.4 +中的默认值。


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