5

这个查询有问题,我不知道它是什么。我相信这很简单:

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。谷歌搜索错误并没有告诉我太多。

4

2 回答 2

2

我应该早点尝试的。

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

幸运的是,由于我处于开发初期,因此该系列是空的。

于 2012-05-22T10:20:35.953 回答
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"
    }
}
于 2012-05-22T10:24:16.743 回答