10

有効なJSONドキュメントがいくつかあり、それらをmongodbにインポートしようとしています。

{ "Books":
  [{ "ISBN":"ISBN-0-13-713526-2",
  "Price":85,
  "Edition":3,
  "Title":"A First Course in Database Systems",
  "Authors":[ {"First_Name":"Jeffrey", "Last_Name":"Ullman"},
              {"First_Name":"Jennifer", "Last_Name":"Widom"} ] }
,
{ "ISBN":"ISBN-0-13-815504-6",
  "Price":100,
  "Remark":"Buy this book bundled with 'A First Course' - a great deal!",
  "Title":"Database Systems:The Complete Book",
  "Authors":[ {"First_Name":"Hector", "Last_Name":"Garcia-Molina"},
              {"First_Name":"Jeffrey", "Last_Name":"Ullman"},
              {"First_Name":"Jennifer", "Last_Name":"Widom"} ] }],
"Magazines":
[{ "Title":"National Geographic",
  "Month":"January",
  "Year":2009 }
,
{ "Title":"Newsweek",
  "Month":"February",
  "Year":2009 },
{"Title": "Newsweek"}]
}

次のエラーが発生しました:

Sun Mar 24 15:23:27例外:提供されたJSONのBSON表現が大きすぎます:JSON文字列の解析に失敗しました: "Month": "J Sun Mar 24

15:23:27例外:提供されたJSONのBSON表現が大きすぎます:JSON文字列の解析に失敗しました: "Year":200 Sun Mar 24 15:28:23

エラー:28個のエラーが発生しました

誰かが何が悪いのか言うことができますか?

4

4 に答える 4

31

デフォルトでmongoimportは、各ドキュメントはJSONファイルの1行にあると想定しています。--jsonArray使用しmongoimportている形式の使用に移行するか、1つのドキュメントのすべてのデータが1行にあることを確認する必要があります。

(ファイルをそのまま保存し--jsonArray、オプションを追加しましたが、正常に機能しました。)

于 2013-03-24T16:32:20.213 に答える
1

MongoDBには、ドキュメントあたり16MBの制限があります。この制限を克服したい場合は、を使用する必要がありますGridFSこちらのドキュメントをご覧ください。

于 2013-03-24T15:04:39.250 に答える
1

ターミナルからの次のコマンドは私にとってうまくいきました:

mongoimport -d my_db -c my_collection < my_json_file.json --batchSize 1

--batchSize一部のバージョンでは、以下のように1ではなく50を変更する必要があります。

mongoimport -d my_db -c my_collection < my_json_file.json --batchSize 50
于 2015-11-30T08:58:54.613 に答える
0

jsonファイルをインポートしたい場合は、これも使用できます

csvの使用にも--type csv

mongoimport --db database --collection collection_name filename.json --type json
于 2016-07-15T13:02:20.227 に答える