Php Laravel:如何将MongoDB查询的结果插入MySQL?
我有一些数据保存在MongoDB中,我想把它们传输到MySQL 我使用MongoDB PHP库来实现这一点,并在下面编写了一个测试演示: MongoDB PHP库文档:Php Laravel:如何将MongoDB查询的结果插入MySQL?,php,mysql,mongodb,laravel,Php,Mysql,Mongodb,Laravel,我有一些数据保存在MongoDB中,我想把它们传输到MySQL 我使用MongoDB PHP库来实现这一点,并在下面编写了一个测试演示: MongoDB PHP库文档: TestController.php //insert some test data into mongodb public function insertMongodb() { $collection = (new \MongoDB\Client)->test->articl
TestController.php
//insert some test data into mongodb
public function insertMongodb()
{
$collection = (new \MongoDB\Client)->test->articles;
$collection->insertMany([
['title' => 'hello', 'content' => 'hello...'],
['title' => 'foo', 'content' => 'foo...'],
['title' => 'bar', 'content' => 'bar...'],
]);
dd('ok');
}
//query the data from mongodb and insert them into mysql
public function queryAndInsertMysql()
{
$collection = (new \MongoDB\Client)->test->articles;
$cursor = $collection->find();
//how to write next?
}
在mysql中,有一个表articles
,它有以下字段:
id
title
content
我想将查询结果从mongodb传输到mysql表articles
问题:在第二个函数中,如何将从mongodb查询的结果插入mysql?看起来您对如何在Laravel中插入记录有点困惑。您正在对集合调用
insertMany()
方法
我建议在应用程序中设置2个数据库连接,1个用于MongoDB,1个用于MySQL
有关在Laravel中创建多个数据库连接的帮助,请参阅此问答
然后从一个数据库中提取并插入到另一个数据库中:
$articles = DB::connection('mongodb')->table('articles')->get();
DB::connection('mysql')->table('articles')->insert($articles);
如果这是一项一次性任务,那么它可能是迁移的一部分,而不是控制器 谢谢!运行代码时还有另一个问题,请参阅我的更新。您已编辑了原始问题,因此它现在包含我的答案,但有一个新的附加问题。这对未来的读者来说是非常混乱的,StackOverflow建议不要在同一篇文章中问多个问题。考虑把这个问题移动到一个新的问题,并保持原来的问题和答案作为一对一致。