我将旧的mysql数据转换为csv,然后将csv转换为json。 现在我想插入我的mongodb
这里是json
$json =[
["(2"," 'Kea'"," 'Sand'"," 'kea.sand@gmail.com'"," '2013-07-28'"," ''"," '0000-00-00'"," 0)",0];
这些记录有数百条。
这是我尝试过的事情
$j=json_decode($json,true);
foreach($j as row){
$todo=array('email'=>$row[4], //email address row
'name'=>$row[2],
);
$collection->insert($todo);
}
从理论上讲,我认为它会起作用但却是消极的。所有其他尝试的代码都是各自的变体。 我怎么能这样做?
答案 0 :(得分:1)
问题是你生成的是无效的JSON,这就是它不解析的原因。你需要这样的东西:
{ "name": "Kea", "email": "kea.sand@gmail.com" }
可能您最好的选择是返回到您的csv文件并使用mongoimport来传输数据。 --type
有一个选项,您可以在其中指定csv。
根据csv文件的格式,如果您使用字段名称发出标题行,则可以使用--headerline
选项。如果没有,那么您需要通过--fields
为您的字段指定名称。
文档中有几个usage示例。
这应该允许您导入数据,然后开始处理代码。
或者,然后在代码中查看从CSV中正确形成JSON的方法。但是已经有了这个实用程序。