Skip to content

Commit ee84030

Browse files
jason-price-mongodbjason-price-mongodb
andauthored
DOCSP-24397 bulk write example (#1646) (#1651)
* DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example * DOCSP-24397-bulk-write-example Co-authored-by: jason-price-mongodb <[email protected]> Co-authored-by: jason-price-mongodb <[email protected]>
1 parent fbb52a5 commit ee84030

File tree

4 files changed

+244
-283
lines changed

4 files changed

+244
-283
lines changed

source/core/bulk-write-operations.txt

Lines changed: 13 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ perform bulk insert, update, and delete operations.
2626
MongoDB also supports bulk insert through the
2727
:method:`db.collection.insertMany()` method.
2828

29+
.. _bulk-write-operations-ordered-vs-unordered:
30+
2931
Ordered vs Unordered Operations
3032
-------------------------------
3133

@@ -70,83 +72,17 @@ bulkWrite() Methods
7072
Each write operation is passed to :method:`~db.collection.bulkWrite()` as a
7173
document in an array.
7274

73-
For example, the following performs multiple write operations:
74-
75-
The ``characters`` collection contains the following documents:
76-
77-
.. code-block:: javascript
78-
79-
{ "_id" : 1, "char" : "Brisbane", "class" : "monk", "lvl" : 4 },
80-
{ "_id" : 2, "char" : "Eldon", "class" : "alchemist", "lvl" : 3 },
81-
{ "_id" : 3, "char" : "Meldane", "class" : "ranger", "lvl" : 3 }
82-
83-
The following :method:`~db.collection.bulkWrite()` performs multiple
84-
operations on the collection:
85-
86-
.. code-block:: javascript
87-
88-
try {
89-
db.characters.bulkWrite(
90-
[
91-
{ insertOne :
92-
{
93-
"document" :
94-
{
95-
"_id" : 4, "char" : "Dithras", "class" : "barbarian", "lvl" : 4
96-
}
97-
}
98-
},
99-
{ insertOne :
100-
{
101-
"document" :
102-
{
103-
"_id" : 5, "char" : "Taeln", "class" : "fighter", "lvl" : 3
104-
}
105-
}
106-
},
107-
{ updateOne :
108-
{
109-
"filter" : { "char" : "Eldon" },
110-
"update" : { $set : { "status" : "Critical Injury" } }
111-
}
112-
},
113-
{ deleteOne :
114-
{ "filter" : { "char" : "Brisbane" } }
115-
},
116-
{ replaceOne :
117-
{
118-
"filter" : { "char" : "Meldane" },
119-
"replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
120-
}
121-
}
122-
]
123-
);
124-
}
125-
catch (e) {
126-
print(e);
127-
}
128-
129-
The operation returns the following:
130-
131-
.. code-block:: javascript
132-
133-
{
134-
"acknowledged" : true,
135-
"deletedCount" : 1,
136-
"insertedCount" : 2,
137-
"matchedCount" : 2,
138-
"upsertedCount" : 0,
139-
"insertedIds" : {
140-
"0" : 4,
141-
"1" : 5
142-
},
143-
"upsertedIds" : {
144-
145-
}
146-
}
147-
148-
For more examples, see
149-
:ref:`bulkWrite() Examples <bulkwrite-example-bulk-write-operation>`
75+
Example
76+
-------
77+
78+
The example in this section uses the ``pizzas`` collection:
79+
80+
.. include:: /includes/pizza-example-collection.rst
81+
82+
.. include:: /includes/pizza-bulk-write-example.rst
83+
84+
For more examples, see :ref:`bulkWrite() Examples
85+
<bulkwrite-example-bulk-write-operation>`.
15086

15187
Strategies for Bulk Inserts to a Sharded Collection
15288
---------------------------------------------------
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
The following :method:`~db.collection.bulkWrite()` example runs
2+
these operations on the ``pizzas`` collection:
3+
4+
- Adds two documents using ``insertOne``.
5+
- Updates a document using ``updateOne``.
6+
- Deletes a document using ``deleteOne``.
7+
- Replaces a document using ``replaceOne``.
8+
9+
.. code-block:: javascript
10+
11+
try {
12+
db.pizzas.bulkWrite( [
13+
{ insertOne: { document: { _id: 3, type: "beef", size: "medium", price: 6 } } },
14+
{ insertOne: { document: { _id: 4, type: "sausage", size: "large", price: 10 } } },
15+
{ updateOne: {
16+
filter: { type: "cheese" },
17+
update: { $set: { price: 8 } }
18+
} },
19+
{ deleteOne: { filter: { type: "pepperoni"} } },
20+
{ replaceOne: {
21+
filter: { type: "vegan" },
22+
replacement: { type: "tofu", size: "small", price: 4 }
23+
} }
24+
] )
25+
} catch( error ) {
26+
print( error )
27+
}
28+
29+
Example output, which includes a summary of the completed operations:
30+
31+
.. code-block:: javascript
32+
:copyable: false
33+
34+
{
35+
acknowledged: true,
36+
insertedCount: 2,
37+
insertedIds: { '0': 3, '1': 4 },
38+
matchedCount: 2,
39+
modifiedCount: 2,
40+
deletedCount: 1,
41+
upsertedCount: 0,
42+
upsertedIds: {}
43+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.. code-block:: javascript
2+
3+
db.pizzas.insertMany( [
4+
{ _id: 0, type: "pepperoni", size: "small", price: 4 },
5+
{ _id: 1, type: "cheese", size: "medium", price: 7 },
6+
{ _id: 2, type: "vegan", size: "large", price: 8 }
7+
] )

0 commit comments

Comments
 (0)