PHP 和 MongoDB - 插入嵌入文档


执行任何操作的第一步是创建一个 Manager 实例。

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

第二步是准备并执行一个bulkWrite 对象,以在集合中插入带有嵌入文档的记录。

// Create a BulkWrite Object
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);

$bulk->insert(['title' => "MongoDB Overview", 
   'description' => 'MongoDB is no SQL database', 
   'by' => 'tutorials point',
   'url' => 'http://www.tutorialspoint.com',
   'comments' => [
      ['user' => "user1", 'message' => "My First Comment", 'dateCreated' => "20/2/2020", 'like' => 0],
      ['user' => "user2", 'message' => "My Second Comment", 'dateCreated' => "20/2/2020", 'like' => 0],
   ]]);

// Execute the commands.
$result = $manager->executeBulkWrite('myDb.sampleCollection', $bulk);

例子

尝试以下示例在 MongoDB 服务器的集合中插入带有嵌入文档的文档 -

将以下示例复制并粘贴为 mongodb_example.php -

<?php
   try {
	  // connect to mongodb
      $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
	  
      $bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);

      $bulk->insert(['title' => "MongoDB Overview", 
         'description' => 'MongoDB is no SQL database', 
         'by' => 'tutorials point',
         'url' => 'http://www.tutorialspoint.com',
         'comments' => [
		 ['user' => "user1", 'message' => "My First Comment", 'dateCreated' => "20/2/2020", 'like' => 0],
		 ['user' => "user2", 'message' => "My Second Comment", 'dateCreated' => "20/2/2020", 'like' => 0],
		 ]]);

      $result = $manager->executeBulkWrite('myDb.sampleCollection', $bulk);

      printf("Inserted %d document(s).\n", $result->getInsertedCount());
   } catch (MongoDB\Driver\Exception\Exception $e) {	   
      echo "Exception:", $e->getMessage(), "\n";
   }
?>

输出

访问部署在 apache Web 服务器上的 mongodb_example.php 并验证输出。

Inserted 1 document(s).