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