Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:如何将MongoDB查询的结果插入MySQL?_Php_Mysql_Mongodb_Laravel - Fatal编程技术网

Php Laravel:如何将MongoDB查询的结果插入MySQL?

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

我有一些数据保存在MongoDB中,我想把它们传输到MySQL

我使用MongoDB PHP库来实现这一点,并在下面编写了一个测试演示:

MongoDB PHP库文档:

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建议不要在同一篇文章中问多个问题。考虑把这个问题移动到一个新的问题,并保持原来的问题和答案作为一对一致。