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 文件的单行上。您需要使用您正在使用的格式,或者只是确保单个文档的所有数据都在一行上--jsonArraymongoimport

(我按原样保存了您的文件,添加了--jsonArray, 选项并且效果很好。)

于 2013-03-24T16:32:20.213 回答
1

MongoDB 每个文档的限制为 16 MB。如果你想克服这个限制,你需要使用GridFS. 请在此处查看文档。

于 2013-03-24T15:04:39.250 回答
1

来自终端的以下命令对我很有用:

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

某些版本需要更改--batchSize50 而不是 1,如下所示:

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 回答