Skip to content

Commit 3ed9cbb

Browse files
committed
DOCSP-34101-create-bulk-operations-page (#948)
* DOCSP-34101-create-bulk-operations-page * fleshed out page entierly * fix errors add toctree * toctree * bulk page * real paths * test * added api links * fixed link and syntax * syntax * fix link * feedback * changed type * fix indent * feedback (cherry picked from commit 05844f2)
1 parent cec7192 commit 3ed9cbb

File tree

3 files changed

+527
-0
lines changed

3 files changed

+527
-0
lines changed

source/code-snippets/crud/bulk.js

+120
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
const { MongoClient, ObjectId } = require('mongodb');
2+
3+
const uri = '<connection string>'; // Add your MongoDB connection string here
4+
5+
(async () => {
6+
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
7+
8+
try {
9+
await client.connect();
10+
11+
const database = client.db('sample_mflix');
12+
const movies = database.collection('movies');
13+
14+
// Clean up collection
15+
await movies.deleteMany({});
16+
17+
// begin-sample-data
18+
// const movies = database.collection('movies');
19+
20+
const docs = [
21+
{ title: "Inception", year: 2010, rated: "PG-13", released: "2010-07-16" },
22+
{ title: "Interstellar", year: 2014, rated: "PG-13", released: "2014-11-07" },
23+
{ title: "The Dark Knight", year: 2008, rated: "PG-13", released: "2008-07-18" },
24+
{ title: "Tenet", year: 2020, rated: "PG-13", released: "2020-09-03"}
25+
];
26+
// end-sample-data
27+
28+
// begin-insert
29+
const bulkOps = [
30+
{ insertOne: { document: { title: "Inception", year: 2010, rated: "PG-13", released: "2010-07-16" } } },
31+
{ insertOne: { document: { title: "Interstellar", year: 2014, rated: "PG-13", released: "2014-11-07" } } },
32+
{ insertOne: { document: { title: "The Dark Knight", year: 2008, rated: "PG-13", released: "2008-07-18" } } },
33+
{ insertOne: { document: { title: "Tenet", year: 2020, rated: "PG-13", released: "2020-09-03" } } }
34+
];
35+
36+
await movies.bulkWrite(bulkOps);
37+
// end-insert
38+
39+
await movies.insertMany(docs);
40+
41+
// Inserting additional movies
42+
const additionalMovies = [
43+
{ title: "Dunkirk", year: 2017, rated: "PG-13", released: "2017-07-21" },
44+
{ title: "Memento", year: 2000, rated: "R", released: "2000-09-05" }
45+
];
46+
await movies.insertMany(additionalMovies);
47+
48+
49+
// begin-replace
50+
const replaceOperations = [
51+
{
52+
replaceOne: {
53+
filter: { title: "The Dark Knight" },
54+
replacement: { title: "The Dark Knight Rises", year: 2012, rating: "PG-13" },
55+
upsert: false
56+
}
57+
},
58+
{
59+
replaceOne: {
60+
filter: { title: "Inception" },
61+
replacement: { title: "Inception Reloaded", year: 2010, rating: "PG-13" },
62+
upsert: false
63+
}
64+
}
65+
];
66+
67+
const replace_result = await movies.bulkWrite(replaceOperations);
68+
// end-replace
69+
70+
71+
// begin-update
72+
const updateOperations = [
73+
{
74+
updateOne: {
75+
filter: { title: "Interstellar" },
76+
update: { $set: { title: "Interstellar Updated", genre: "Sci-Fi Adventure" } },
77+
upsert: true
78+
}
79+
},
80+
{
81+
updateMany: {
82+
filter: { rated: "PG-13" },
83+
update: { $set: { rated: "PG-13 Updated", genre: "Updated Genre" } }
84+
}
85+
}
86+
];
87+
88+
const update_result = await movies.bulkWrite(updateOperations);
89+
90+
console.log(`Matched documents: ${result3.matchedCount}`);
91+
console.log(`Modified documents: ${result3.modifiedCount}`);
92+
// end-update
93+
94+
95+
// begin-delete
96+
const deleteOperations = [
97+
{
98+
deleteOne: {
99+
filter: { title: "Dunkirk" }
100+
}
101+
},
102+
{
103+
deleteMany: {
104+
filter: { rated: "R" }
105+
}
106+
}
107+
];
108+
109+
110+
const delete_result = await movies.bulkWrite(deleteOperations);
111+
112+
console.log(`Deleted documents: ${result4.deletedCount}`);
113+
// end-delete
114+
115+
116+
console.log("Operations completed successfully.");
117+
} finally {
118+
await client.close();
119+
}
120+
})();

source/fundamentals/crud/write-operations.txt

+2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ Write Operations
1515
Modify </fundamentals/crud/write-operations/modify>
1616
Update Arrays </fundamentals/crud/write-operations/embedded-arrays>
1717
Upsert </fundamentals/crud/write-operations/upsert>
18+
Bulk Operations </fundamentals/crud/write-operations/bulk>
1819

1920
- :doc:`/fundamentals/crud/write-operations/insert`
2021
- :doc:`/fundamentals/crud/write-operations/pkFactory`
2122
- :doc:`/fundamentals/crud/write-operations/delete`
2223
- :doc:`/fundamentals/crud/write-operations/modify`
2324
- :doc:`/fundamentals/crud/write-operations/embedded-arrays`
2425
- :doc:`/fundamentals/crud/write-operations/upsert`
26+
- :doc:`/fundamentals/crud/write-operations/bulk`

0 commit comments

Comments
 (0)