PHP & MongoDB - Insert Embedded Documents



First step to do any operation is to create a Manager instance.

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

Second step is to prepare and execute a bulkWrite object to insert record(s) with embedded documents in the collection.

// 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);

Example

Try the following example to insert document with embedded documents in a collection in MongoDB server −

Copy and paste the following example as 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";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Inserted 1 document(s).
Advertisements