将json数组插入mongodb php

时间:2014-03-17 02:41:02

标签: php mongodb

我将旧的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);
 }

从理论上讲,我认为它会起作用但却是消极的。所有其他尝试的代码都是各自的变体。 我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

问题是你生成的是无效的JSON,这就是它不解析的原因。你需要这样的东西:

{ "name": "Kea", "email": "kea.sand@gmail.com" }

可能您最好的选择是返回到您的csv文件并使用mongoimport来传输数据。 --type有一个选项,您可以在其中指定csv。

根据csv文件的格式,如果您使用字段名称发出标题行,则可以使用--headerline选项。如果没有,那么您需要通过--fields为您的字段指定名称。

文档中有几个usage示例。

这应该允许您导入数据,然后开始处理代码。

或者,然后在代码中查看从CSV中正确形成JSON的方法。但是已经有了这个实用程序。