!MongoDB查询中的e.eoo()错误

时间:2012-05-22 09:38:38

标签: json mongodb bson

此查询有问题,我无法分辨它是什么。我确信这很简单:

db.foo.insert({
    'created at': new Date(),
    ooc: false,
    body: '<p>Moo</p>\n',
    keywords: [ 'Moo' ],
    mentioned: [],
    tags: [],
    sender: {
        _id: 'stuff',
        name: 'lambdadusk',
        'display name': 'Lambda'
    }
});

我从Mongo得到的错误只是

!e.eoo()

我正在使用MongoDB 2.0.5。谷歌搜索错误并没有告诉我太多。

2 个答案:

答案 0 :(得分:2)

我应该早点尝试过。

问题不在于查询,但是集合的BSON数据文件以某种方式被破坏了。我不得不放弃收藏,然后重新尝试。

幸运的是,由于我在开发初期,这个系列是空的。

答案 1 :(得分:0)

eoo表示对象结束,如果不存在,您的JSON中可能会出现解析错误。可能Mongo想要严格有效的JSON,所以你可能需要对所有字符串使用双引号并且可能删除新的Date()位。

http://jsonlint.com/建议这是有效的,而您发布的代码则不然。

,不确定Mongo是否使用BSON是否有帮助
{
    "created at": {},
    "ooc": false,
    "body": "<p>Moo</p>\n",
    "keywords": [
        "Moo"
    ],
    "mentioned": [],
    "tags": [],
    "sender": {
        "_id": "stuff",
        "name": "lambdadusk",
        "displayname": "Lambda"
    }
}