問題は、mongoexport がデータ型を db に保存できないことです。たとえば、「tweetID」という名前のフィールドがあり、「23465478」のような数字の文字列にする必要があります。コレクションを csv ファイルにエクスポートした後、一部のエントリでは tweetID が "254323467.0" のように 10 進数でエクスポートされ、一部のエントリではエクスポートされないことがわかりました。不必要な間違いを避けるために、すべてのフィールドを純粋な文字列型でエクスポートしたいだけです。コマンドmongoexportでこれを設定する方法を知っている人はいますか? 前もって感謝します。
1961 次
1 に答える
4
できません。mongoexport が 123 を 123.0 としてエクスポートした場合、123 はドキュメントの Double タイプでした。値を 32 ビットまたは 64 ビットの整数として挿入してみてください。
db.collection.insert({ "tweetId" : NumberLong(1234567) })
mongoexport は厳密モードの JSON 表現を使用して JSON をエクスポートします。これにより、JSON にいくつかの型情報が挿入されるため、MongoDB JSON パーサー (mongoimport など) は正しい BSON データ型を再現できますが、エクスポートされた JSON は引き続き JSON 標準に準拠しています。
{ "tweetId" : { "$numberLong" : "1234567" } }
すべてのタイプ情報を保持するには、代わりに mongodump/mongorestore を使用してください。すべてのフィールド値を文字列としてエクスポートするには、各ドキュメントを取得してすべての値を文字列化するドライバーを使用して、独自のスクリプトを作成する必要があります。
于 2014-11-24T15:57:41.090 に答える