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()

MongoDB2.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 に答える