我已经用mysql数据库在codeigniter中完成了一个项目,但现在我想把mysql转移到非sql数据库mongodb。我在codeigniter中找到了一些mongodb的驱动程序,但它们的查询结构不同。我还在该项目中使用了自定义sql查询,如
$sql = "SELECT * FROM table_name";
$this->db->query($sql);
我希望在这个现有项目中使用mongodb,而不更改任何数据库查询。请帮我怎么做。
您可以使用一些命令将mysql数据转储到csv:
mysql -u [USERNAME] -p [DBNAME] -e "SELECT * FROM table_name;"|sed "s/'/''/;s/'t/'",'"/g;s/^/'"/;s/$/'"/;s/'n//g" > result_csv.csv
然后只需使用mongoimport:
mongoimport --db mongodb_name --collection mongo_collection --headerline < result_csv.csv
UPD:
不用mysql
命令查询mysql服务器,您可以使用:
mysqldump -u username -p -t -T/path/to/directory dbname table_name --fields-terminated-by=','
但是,在这种情况下,您必须记住/path/to/directory
必须可由mysql
进程写入,而且,正如我所记得的,您不需要mongoimport
命令中的--headerline
选项