web-dev-qa-db-ja.com

Robomongoのコレクションに日付付きのドキュメントを挿入します

私はRobomongoを使用しており、手動でオブジェクトを挿入しています。

オブジェクトに現在の日付のフィールドが必要です。通常、私はJavascriptでDate.now()を使用することに慣れています。ただし、Robomongoツールでドキュメントの挿入フォームを使用すると、次のようになります。

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

サンプルJSON:

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

このレコードを挿入する方法はありますか?

8
Lars Holdgaard

残念ながら、この段階では、次のgithubの問題に記載されているようにこれを行うことはできません。

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

... RobomongoのJavaScriptエンジンとmongoShell2.4以降のデフォルトであるv8エンジンの間にはいくつかの違いがあります。


問題#52 Robomongoに付属の組み込みシェルをSpiderMonkeyからv8(MongoDB 2.4以降のデフォルト)に更新することで問題を修正する必要があります。

3
Lix

この例は、Robomongo 0.8.4 Shell Promptに直接挿入すると、たとえばgameコレクションに正常に機能します。

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

コンテキストメニューを使用する場合(Insert Document...)、JSONパーサーは発生している構文エラーを返します。

ここでの問題は、JSON検証が現在MongoDBに固有ではないライブラリで行われていることです。上記はいくつかの理由(引用符で囲まれていないキーと引用符で囲まれていない関数値)のために有効なJSONではありませんが、mongoに挿入するのに有効ですシェル。

このためにRobomongo issue#619 を作成しました。関連するJSON検証の違いは 問題#448 です。

JSON検証エラーが修正されるまで、代わりにRobomongoのシェルプロンプトを介してこのようなドキュメントを挿入することをお勧めします。

5
Stennie