Skip to content

Commit 74f3381

Browse files
committed
Add example referenced from Collection::bulkWrite()
1 parent 906c2ab commit 74f3381

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

examples/Collection-bulkWrite.php

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<?php
2+
require __DIR__ . "/" . "../vendor/autoload.php";
3+
4+
function dumpWriteResults(MongoDB\WriteResult $result) {
5+
printf("Inserted %d documents, upserted %d, updated %d and deleted %d\n",
6+
$result->getInsertedCount(), $result->getUpsertedCount(),
7+
$result->getModifiedCount(), $result->getDeletedCount()
8+
);
9+
10+
if ($result->getUpsertedCount()) {
11+
foreach ($result->getUpsertedIds() as $index => $id) {
12+
printf("upsertedId[%d]: %s", $index, $id);
13+
}
14+
}
15+
}
16+
function dumpCollection($collection) {
17+
printf("\n---\nDumping all documents in: %s.%s\n",
18+
$collection->getDatabaseName(),
19+
$collection->getCollectionName()
20+
);
21+
$n = 0;
22+
foreach($collection->find() as $document) {
23+
var_dump($document);
24+
$n++;
25+
}
26+
printf("Found %d documents\n", $n);
27+
}
28+
29+
30+
$manager = new MongoDB\Manager("mongodb://localhost:27017");
31+
$collection = new MongoDB\Collection($manager, "crud.bulkWrite");
32+
$result = $collection->bulkWrite([
33+
[
34+
"insertOne" => [
35+
[
36+
"name" => "Hannes Magnusson",
37+
"company" => "10gen",
38+
]
39+
],
40+
],
41+
[
42+
"insertOne" => [
43+
[
44+
"name" => "Jeremy Mikola",
45+
"company" => "10gen",
46+
]
47+
],
48+
],
49+
[
50+
"updateMany" => [
51+
["company" => "10gen"],
52+
['$set' => ["company" => "MongoDB"]],
53+
],
54+
],
55+
[
56+
"updateOne" => [
57+
["name" => "Hannes Magnusson"],
58+
['$set' => ["viking" => true]],
59+
],
60+
],
61+
]);
62+
63+
dumpWriteResults($result);
64+
dumpCollection($collection);
65+
66+
67+
$result = $collection->bulkWrite([
68+
[
69+
"deleteOne" => [
70+
["company" => "MongoDB"],
71+
],
72+
],
73+
[
74+
"updateOne" => [
75+
["name" => "Hannes Magnusson"],
76+
['$set' => ["nationality" => "Icelandic"]],
77+
["upsert" => true],
78+
],
79+
],
80+
[
81+
"deleteMany" => [
82+
["nationality" => [ '$ne' => "Icelandic"]],
83+
],
84+
],
85+
]);
86+
87+
echo "\n\n";
88+
dumpWriteResults($result);
89+
dumpCollection($collection);
90+
91+
$result = $collection->bulkWrite([
92+
[
93+
"deleteMany" => [
94+
[],
95+
],
96+
],
97+
]);
98+
99+
echo "\n\n";
100+
dumpWriteResults($result);
101+
dumpCollection($collection);
102+

0 commit comments

Comments
 (0)