Skip to content

Commit 48e0ec8

Browse files
jason-price-mongodbjason-price-mongodb
andauthored
DOCSP-24397 bulk write example (#1646)
* 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]>
1 parent 1ed7ae9 commit 48e0ec8

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
@@ -24,6 +24,8 @@ perform bulk insert, update, and delete operations.
2424
MongoDB also supports bulk insert through the
2525
:method:`db.collection.insertMany()` method.
2626

27+
.. _bulk-write-operations-ordered-vs-unordered:
28+
2729
Ordered vs Unordered Operations
2830
-------------------------------
2931

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

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

14985
Strategies for Bulk Inserts to a Sharded Collection
15086
---------------------------------------------------
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)