Skip to content

Commit a63df06

Browse files
committed
intro
1 parent 49e3cbe commit a63df06

File tree

3 files changed

+51
-311
lines changed

3 files changed

+51
-311
lines changed

source/crud/write-operations/bulk.txt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,8 @@ see the following API documentation:
360360
- `ordered() <{+api+}/apidocs/mongodb-driver-core/com/mongodb/client/model/BulkWriteOptions.html#ordered(boolean)>`__
361361

362362

363-
Example File
364-
~~~~~~~~~~~~
363+
BulkWrite Example File
364+
~~~~~~~~~~~~~~~~~~~~~~
365365

366366
This code example is a complete, standalone file that performs an ordered bulk
367367
write operation. It uses the on the ``movies`` collection in the
@@ -372,11 +372,8 @@ Started with Atlas Guide </getting-started/#atlas-getting-started?jmp=docs_drive
372372

373373
.. include:: /includes/sample-data-note.rst
374374

375-
376-
The example call to ``bulkWrite()`` includes examples of the ``InsertOneModel``,
377-
``UpdateOneModel``, and ``DeleteOneModel``.
378-
379-
The following code
375+
This example call to ``bulkWrite()`` includes examples of the ``InsertOneModel``,
376+
``UpdateOneModel``, ``DeleteOneModel``, and ``ReplaceOneModel``.
380377

381378
.. include:: /includes/connect-guide-note.rst
382379

source/includes/crud/BulkWrite.java

Lines changed: 47 additions & 245 deletions
Original file line numberDiff line numberDiff line change
@@ -1,257 +1,59 @@
1-
package docs;
1+
// Runs bulk write operations on a collection by using the Java driver
22

3+
package usage.examples;
4+
5+
import java.util.Arrays;
6+
7+
import org.bson.Document;
8+
9+
import com.mongodb.MongoException;
10+
import com.mongodb.bulk.BulkWriteResult;
311
import com.mongodb.client.MongoClient;
412
import com.mongodb.client.MongoClients;
513
import com.mongodb.client.MongoCollection;
614
import com.mongodb.client.MongoDatabase;
15+
import com.mongodb.client.model.DeleteOneModel;
716
import com.mongodb.client.model.InsertOneModel;
8-
import com.mongodb.client.model.UpdateOneModel;
917
import com.mongodb.client.model.ReplaceOneModel;
10-
import com.mongodb.client.model.BulkWriteOptions;
11-
import com.mongodb.client.model.DeleteOneModel;
12-
import com.mongodb.client.model.DeleteManyModel;
13-
14-
import com.mongodb.MongoBulkWriteException;
15-
16-
import org.bson.Document;
17-
18-
import java.util.*;
19-
20-
import com.mongodb.client.model.Filters;
21-
import com.mongodb.client.model.Updates;
22-
import com.mongodb.client.model.WriteModel;
18+
import com.mongodb.client.model.UpdateOneModel;
19+
import com.mongodb.client.model.UpdateOptions;
2320

2421
public class BulkWrite {
25-
26-
private final MongoCollection<Document> collection;
27-
private final MongoClient mongoClient;
28-
private final MongoDatabase database;
29-
30-
private BulkWrite() {
31-
final String uri = System.getenv("DRIVER_REF_URI");
32-
33-
mongoClient = MongoClients.create(uri);
34-
database = mongoClient.getDatabase("crudOps");
35-
collection = database.getCollection("bulkWrite");
36-
}
37-
3822
public static void main(String[] args) {
39-
BulkWrite bulkWrite = new BulkWrite();
40-
System.out.println("Ordered BulkWrite");
41-
bulkWrite.setUpCollection();
42-
bulkWrite.bulkWriteExample();
43-
bulkWrite.preview();
44-
45-
System.out.println("Unordered BulkWrite");
46-
bulkWrite.setUpCollection();
47-
bulkWrite.bulkWriteNotOrderedExample();
48-
bulkWrite.preview();
49-
50-
System.out.println("Insert BulkWriteException");
51-
bulkWrite.setUpCollection();
52-
bulkWrite.insertExceptionExample();
53-
54-
System.out.println("Insert");
55-
bulkWrite.setUpCollection();
56-
bulkWrite.insertDocumentsExample();
57-
bulkWrite.preview();
58-
59-
System.out.println("Replace");
60-
bulkWrite.setUpCollection();
61-
bulkWrite.replaceDocumentsExample();
62-
bulkWrite.preview();
63-
64-
System.out.println("Update");
65-
bulkWrite.setUpCollection();
66-
bulkWrite.updateDocumentsExample();
67-
bulkWrite.preview();
68-
69-
System.out.println("Delete");
70-
bulkWrite.setUpCollection();
71-
bulkWrite.deleteDocumentsExample();
72-
bulkWrite.preview();
73-
}
74-
75-
76-
private void insertExceptionExample() {
77-
// begin insertExceptionExample
78-
try {
79-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
80-
81-
// Creates instructions to insert documents
82-
InsertOneModel<Document> doc1 = new InsertOneModel<>(new Document("_id", 1));
83-
InsertOneModel<Document> doc3 = new InsertOneModel<>(new Document("_id", 3));
84-
85-
bulkOperations.add(doc1);
86-
bulkOperations.add(doc3);
87-
88-
// Runs a bulk write operation for the specified insert WriteModels
89-
collection.bulkWrite(bulkOperations);
90-
91-
// Prints a message if any exceptions occur during the bulk write operation
92-
} catch (MongoBulkWriteException e){
93-
System.out.println("A MongoBulkWriteException occurred with the following message: " + e.getMessage());
23+
// Replace the uri string with your MongoDB deployment's connection string
24+
String uri = "<connection string uri>";
25+
26+
try (MongoClient mongoClient = MongoClients.create(uri)) {
27+
MongoDatabase database = mongoClient.getDatabase("sample_mflix");
28+
MongoCollection<Document> collection = database.getCollection("movies");
29+
30+
try {
31+
// Runs a bulk write operation for the specified insert, update, delete, and replace operations
32+
BulkWriteResult result = collection.bulkWrite(
33+
Arrays.asList(
34+
new InsertOneModel<>(new Document("name", "A Sample Movie")),
35+
new InsertOneModel<>(new Document("name", "Another Sample Movie")),
36+
new InsertOneModel<>(new Document("name", "Yet Another Sample Movie")),
37+
38+
new UpdateOneModel<>(new Document("name", "A Sample Movie"),
39+
new Document("$set", new Document("name", "An Old Sample Movie")),
40+
new UpdateOptions().upsert(true)),
41+
42+
new DeleteOneModel<>(new Document("name", "Yet Another Sample Movie")),
43+
44+
new ReplaceOneModel<>(new Document("name", "Yet Another Sample Movie"),
45+
new Document("name", "The Other Sample Movie").append("runtime", "42"))
46+
));
47+
// Prints the number of inserted, updated, and deleted documents
48+
System.out.println("Result statistics:" +
49+
"\ninserted: " + result.getInsertedCount() +
50+
"\nupdated: " + result.getModifiedCount() +
51+
"\ndeleted: " + result.getDeletedCount());
52+
53+
// Prints a message if any exceptions occur during the operations
54+
} catch (MongoException me) {
55+
System.err.println("The bulk write operation failed due to an error: " + me);
56+
}
9457
}
95-
//end insertExceptionExample
96-
}
97-
98-
private void bulkWriteNotOrderedExample() {
99-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
100-
101-
// Creates instructions to insert a document
102-
InsertOneModel<Document> insertDoc = new InsertOneModel<>(new Document("_id", 6)
103-
.append("name", "Zaynab Omar")
104-
.append("age", 37));
105-
106-
// Creates instructions to replace the first document that matches the query
107-
ReplaceOneModel<Document> replaceDoc = new ReplaceOneModel<>(Filters.eq("_id", 1),
108-
new Document("name", "Sandy Kane")
109-
.append("location", "Helena, MT"));
110-
111-
// Creates instructions to update the first document that matches the query
112-
UpdateOneModel<Document> updateDoc = new UpdateOneModel<>(Filters.eq("name", "Zaynab Omar"),
113-
Updates.set("name", "Zaynab Hassan"));
114-
115-
// Creates instructions to delete all documents that match the query
116-
DeleteManyModel<Document> deleteDoc = new DeleteManyModel<>(Filters.gt("age", 50));
117-
118-
bulkOperations.add(insertDoc);
119-
bulkOperations.add(replaceDoc);
120-
bulkOperations.add(updateDoc);
121-
bulkOperations.add(deleteDoc);
122-
123-
// begin bulkWriteNotOrderedExample
124-
BulkWriteOptions options = new BulkWriteOptions().ordered(false);
125-
126-
// Runs a bulk write operation for the specified insert, replace, update, and delete WriteModels in any order
127-
collection.bulkWrite(bulkOperations, options);
128-
//end bulkWriteNotOrderedExample
129-
}
130-
131-
private void bulkWriteExample() {
132-
// begin bulkWriteExample
133-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
134-
135-
// Creates instructions to insert a document
136-
InsertOneModel<Document> insertDoc = new InsertOneModel<>(new Document("_id", 6)
137-
.append("name", "Zaynab Omar")
138-
.append("age", 37));
139-
140-
// Creates instructions to replace the first document matched by the query
141-
ReplaceOneModel<Document> replaceDoc = new ReplaceOneModel<>(Filters.eq("_id", 1),
142-
new Document("name", "Sandy Kane")
143-
.append("location", "Helena, MT"));
144-
145-
// Creates instructions to update the first document matched by the query
146-
UpdateOneModel<Document> updateDoc = new UpdateOneModel<>(Filters.eq("name", "Zaynab Omar"),
147-
Updates.set("name", "Zaynab Hassan"));
148-
149-
// Creates instructions to delete all documents matched by the query
150-
DeleteManyModel<Document> deleteDoc = new DeleteManyModel<>(Filters.gt("age", 50));
151-
152-
bulkOperations.add(insertDoc);
153-
bulkOperations.add(replaceDoc);
154-
bulkOperations.add(updateDoc);
155-
bulkOperations.add(deleteDoc);
156-
157-
// Runs a bulk write operation for the specified the insert, replace, update, and delete WriteModels in order
158-
collection.bulkWrite(bulkOperations);
159-
//end bulkWriteExample
160-
}
161-
162-
private void insertDocumentsExample(){
163-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
164-
165-
// Creates instructions to insert multiple documents
166-
// begin insertDocumentsExample
167-
InsertOneModel<Document> juneDoc = new InsertOneModel<>(new Document("name", "June Carrie")
168-
.append("age", 17));
169-
170-
InsertOneModel<Document> kevinDoc = new InsertOneModel<>(new Document("name", "Kevin Moss")
171-
.append("age", 22));
172-
//end insertDocumentsExample
173-
174-
bulkOperations.add(juneDoc);
175-
bulkOperations.add(kevinDoc);
176-
177-
// Runs a bulk write operation for the specified insert WriteModels
178-
collection.bulkWrite(bulkOperations);
179-
}
180-
181-
private void replaceDocumentsExample(){
182-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
183-
184-
// Creates instructions to replace the first document matched by the query
185-
// begin replaceDocumentsExample
186-
ReplaceOneModel<Document> celineDoc = new ReplaceOneModel<>(
187-
Filters.eq("_id", 1),
188-
new Document("name", "Celine Stork")
189-
.append("location", "San Diego, CA"));
190-
//end replaceDocumentsExample
191-
192-
bulkOperations.add(celineDoc);
193-
194-
// Runs a bulk write operation for the specified replace WriteModel
195-
collection.bulkWrite(bulkOperations);
196-
}
197-
198-
private void updateDocumentsExample(){
199-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
200-
201-
// Creates instructions to update the first document matched by the query
202-
// begin updateDocumentsExample
203-
UpdateOneModel<Document> updateDoc = new UpdateOneModel<>(
204-
Filters.eq("_id", 2),
205-
Updates.set("age", 31));
206-
//end updateDocumentsExample
207-
208-
bulkOperations.add(updateDoc);
209-
210-
// Runs a bulk write operation for the specified update WriteModel
211-
collection.bulkWrite(bulkOperations);
212-
}
213-
214-
private void deleteDocumentsExample(){
215-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
216-
217-
// Creates instructions to delete the first document matched by the query
218-
// begin deleteDocumentsExample
219-
DeleteOneModel<Document> deleteDoc = new DeleteOneModel<>(Filters.eq("_id", 1));
220-
//end deleteDocumentsExample
221-
222-
bulkOperations.add(deleteDoc);
223-
224-
// Runs a bulk write operation for the specified delete WriteModel
225-
collection.bulkWrite(bulkOperations);
226-
}
227-
228-
private void preview(){
229-
collection.find().forEach(doc -> System.out.println(doc.toJson()));
230-
}
231-
232-
private void setUpCollection(){
233-
collection.drop();
234-
235-
//begin bulkOpsList
236-
List<WriteModel<Document>> bulkOperations = new ArrayList<>();
237-
//end bulkOpsList
238-
239-
InsertOneModel<Document> karen = new InsertOneModel<>(new Document("_id", 1)
240-
.append("name", "Karen Sandoval")
241-
.append("age", 31));
242-
243-
InsertOneModel<Document> william = new InsertOneModel<>(new Document("_id", 2)
244-
.append("name", "William Chin")
245-
.append("age", 54));
246-
247-
InsertOneModel<Document> shayla = new InsertOneModel<>(new Document("_id", 8)
248-
.append("name", "Shayla Ray")
249-
.append("age", 20));
250-
251-
bulkOperations.add(karen);
252-
bulkOperations.add(william);
253-
bulkOperations.add(shayla);
254-
255-
collection.bulkWrite(bulkOperations);
25658
}
257-
}
59+
}

source/includes/usage-examples/code-snippets/BulkWrite.java

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)