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 MongoDBDriverManager("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 MongoDBDriverBulkWrite([''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 MongoDBDriverManager("mongodb://localhost:27017");
$bulk = new MongoDBDriverBulkWrite([''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 (MongoDBDriverExceptionException $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).
