gpt4 book ai didi

php - 通过PHP MongoDB Driver将数据从mongodb导入mysql应该怎么做?

转载 作者:行者123 更新时间:2023-11-28 23:10:38 25 4
gpt4 key购买 nike

PHP MongoDB Driver( http://php.net/manual/en/mongodb-driver-cursor.toarray.php ) 的文档中有一个示例,
示例代码如下:

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('db.collection', $query);

var_dump($cursor->toArray());

问题:

我想在mysql中插入$cursor,我该怎么做? toArray()可以把它变成一个数组,但是数组的元素是BSONDocument,不能插入mysql。

最佳答案

您需要遍历 BSON 对象数组,并将它们插入到具有相同字段的 MySQL 表中。您可以为此使用 PDO 准备语句,并使用来自每个相应 BSON 的值执行它。

$pdoStmt = $pdo->prepare("INSERT INTO MyTable SET x = :x");

foreach ($cursor->toArray() as $bson) {
$data = get_object_vars($bson);
unset($data["_id"]);
$pdoStmt->execute($data);
}

但这假设您的 MySQL 表具有与您的 BSON 文档完全相同的字段。最好的 MySQL 表设计可能与您的 MongoDB 文档设计不同。这是两种不同的数据存储范例。

这还假设您的 BSON 文档具有简单的名称-值对,其中所有值都是标量。 MySQL 不支持数组或任何子文档。这还假设您的所有 BSON 文档都具有相同的结构,即所有文档中的命名字段集相同。

在尝试此操作之前,您应该学习一些有关关系数据库设计的知识。

关于php - 通过PHP MongoDB Driver将数据从mongodb导入mysql应该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com