我正在与Robomongo合作,我手动插入一个对象。
我想在我的对象上有一个字段,这是当前日期。通常我习惯在Javascript中使用Date.now()
。但是,当我在Robomongo工具中使用插入文档表单时,我得到:
Unable to parse JSON:
Expecting '(', at (4, 15).
示例JSON:
{
serial: '1231323123',
game: 'World of Warcraft',
date: Date.now()
}
知道如何插入此记录吗?
答案 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 +中的默认值)来解决问题。