在mongoimport期间出错

时间:2013-03-24 14:32:11

标签: mongodb

我有几个有效的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字符串失败:“月”:“J Sun Mar 24

     

15:23:27异常:提供的JSON的BSON表示太大了:   解析JSON字符串失败:“年”:200 Sun Mar 24 15:28:23

     

错误:遇到28个错误

有人会说出错了吗?

4 个答案:

答案 0 :(得分:31)

默认情况下,mongoimport期望每个文档都位于JSON文件的单行上。您需要使用您正在使用的格式将--jsonArray传递给mongoimport,或者只是确保单个文档的所有数据都在一行上。

(我按原样保存了您的文件,添加了--jsonArray选项,但它运行正常。)

答案 1 :(得分:1)

MongoDB每个文档的限制为16 MB。如果您想要克服此限制,则需要使用GridFS。请查看文档here

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

如果要导入json文件,也可以使用

也适用于csv使用AnswerType:::class

--type csv