1+ const {
2+ MongoClient,
3+ ObjectId
4+ } = require ( 'mongodb' ) ;
5+
6+ const uri = '<connection string>' ; // Add your MongoDB connection string here
7+
8+ ( async ( ) => {
9+ const client = new MongoClient ( uri ) ;
10+
11+ try {
12+ await client . connect ( ) ;
13+
14+ const database = client . db ( 'sample_mflix' ) ;
15+ const movies = database . collection ( 'movies' ) ;
16+
17+ // begin-insert-coll
18+ const insertModels = [ {
19+ insertOne : {
20+ document : {
21+ title : "The Favourite" ,
22+ year : 2018 ,
23+ rated : "R" ,
24+ released : "2018-12-21"
25+ }
26+ }
27+ } , {
28+ insertOne : {
29+ document : {
30+ title : "I, Tonya" ,
31+ year : 2017 ,
32+ rated : "R" ,
33+ released : "2017-12-08"
34+ }
35+ }
36+ } ] ;
37+
38+ const insertResult = await movies . bulkWrite ( insertModels ) ;
39+ console . log ( `Inserted documents: ${ insertResult . insertedCount } ` ) ;
40+ // end-insert-coll
41+
42+ // begin-insert-client
43+ const clientInserts = [ {
44+ namespace : "sample_mflix.movies" ,
45+ name : "insertOne" ,
46+ document : {
47+ title : "The Favourite" ,
48+ year : 2018 ,
49+ rated : "R" ,
50+ released : "2018-12-21"
51+ }
52+ } , {
53+ namespace : "sample_mflix.movies" ,
54+ name : "insertOne" ,
55+ document : {
56+ title : "I, Tonya" ,
57+ year : 2017 ,
58+ rated : "R" ,
59+ released : "2017-12-08"
60+ }
61+ } , {
62+ namespace : "sample_mflix.users" ,
63+ name : "insertOne" ,
64+ document : {
65+ name : "Brian Schwartz" ,
66+ 67+ }
68+ } ] ;
69+
70+ const clientInsertRes = await client . bulkWrite ( clientInserts ) ;
71+ console . log ( `Inserted documents: ${ clientInsertRes . insertedCount } ` ) ;
72+ // end-insert-client
73+
74+ await movies . insertMany ( docs ) ;
75+
76+ // begin-replace-coll
77+ const replaceOperations = [ {
78+ replaceOne : {
79+ filter : {
80+ title : "The Dark Knight"
81+ } ,
82+ replacement : {
83+ title : "The Dark Knight Rises" ,
84+ year : 2012 ,
85+ rating : "PG-13"
86+ } ,
87+ upsert : false
88+ }
89+ } , {
90+ replaceOne : {
91+ filter : {
92+ title : "Inception"
93+ } ,
94+ replacement : {
95+ title : "Inception Reloaded" ,
96+ year : 2010 ,
97+ rating : "PG-13"
98+ } ,
99+ upsert : false
100+ }
101+ } ] ;
102+
103+ const replaceResult = await movies . bulkWrite ( replaceOperations ) ;
104+ console . log ( `Modified documents: ${ replaceResult . modifiedCount } ` ) ;
105+ // end-replace-coll
106+
107+ // begin-replace-client
108+ const clientReplacements = [ {
109+ namespace : "sample_mflix.movies" ,
110+ name : "replaceOne" ,
111+ filter : {
112+ title : "The Dark Knight"
113+ } ,
114+ replacement : {
115+ title : "The Dark Knight Rises" ,
116+ year : 2012 ,
117+ rating : "PG-13"
118+ }
119+ } , {
120+ namespace : "sample_mflix.movies" ,
121+ name : "replaceOne" ,
122+ filter : {
123+ title : "Inception"
124+ } ,
125+ replacement : {
126+ title : "Inception Reloaded" ,
127+ year : 2010 ,
128+ rating : "PG-13"
129+ }
130+ } , {
131+ namespace : "sample_mflix.users" ,
132+ name : "replaceOne" ,
133+ filter : {
134+ name : "April Cole"
135+ } ,
136+ replacement : {
137+ name : "April Franklin" ,
138+ 139+ }
140+ } ] ;
141+
142+ const clientReplaceRes = await client . bulkWrite ( clientReplacements ) ;
143+ console . log ( `Modified documents: ${ clientReplaceRes . modifiedCount } ` ) ;
144+ // end-replace-client
145+
146+ // begin-update-coll
147+ const updateOperations = [ {
148+ updateOne : {
149+ filter : {
150+ title : "Interstellar"
151+ } ,
152+ update : {
153+ $set : {
154+ title : "Interstellar Updated" ,
155+ genre : "Sci-Fi Adventure"
156+ }
157+ } ,
158+ upsert : true
159+ }
160+ } , {
161+ updateMany : {
162+ filter : {
163+ rated : "PG-13"
164+ } ,
165+ update : {
166+ $set : {
167+ rated : "PG-13 Updated" ,
168+ genre : "Updated Genre"
169+ }
170+ }
171+ }
172+ } ] ;
173+
174+ const updateResult = await movies . bulkWrite ( updateOperations ) ;
175+ console . log ( `Modified documents: ${ updateResult . modifiedCount } ` ) ;
176+ // end-update-coll
177+
178+ // begin-update-client
179+ const clientUpdates = [ {
180+ namespace : "sample_mflix.movies" ,
181+ name : "updateMany" ,
182+ filter : {
183+ rated : "PG-13"
184+ } ,
185+ update : {
186+ $set : {
187+ rated : "PG-13 Updated" ,
188+ genre : "Updated Genre"
189+ }
190+ } ,
191+ upsert : false
192+ } , {
193+ namespace : "sample_mflix.users" ,
194+ name : "updateOne" ,
195+ filter : {
196+ name : "Jon Snow"
197+ } ,
198+ update : {
199+ $set : {
200+ name : "Aegon Targaryen" ,
201+ 202+ }
203+ } ,
204+ upsert : false
205+ } ] ;
206+ const clientUpdateRes = await client . bulkWrite ( clientUpdates ) ;
207+ console . log ( `Modified documents: ${ clientUpdateRes . modifiedCount } ` ) ;
208+ // end-update-client
209+
210+ // begin-delete-coll
211+ const deleteOperations = [ {
212+ deleteOne : {
213+ filter : {
214+ title : "Dunkirk"
215+ }
216+ }
217+ } , {
218+ deleteMany : {
219+ filter : {
220+ rated : "R"
221+ }
222+ }
223+ } ] ;
224+
225+ const deleteResult = await movies . bulkWrite ( deleteOperations ) ;
226+ console . log ( `Deleted documents: ${ deleteResult . deletedCount } ` ) ;
227+ // end-delete-coll
228+
229+ // begin-delete-client
230+ const clientDeletes = [ {
231+ namespace : "sample_mflix.movies" ,
232+ name : "deleteMany" ,
233+ filter : {
234+ rated : "R"
235+ }
236+ } , {
237+ namespace : "sample_mflix.users" ,
238+ name : "deleteOne" ,
239+ filter : {
240+ 241+ }
242+ } ] ;
243+
244+ const clientDeleteRes = await client . bulkWrite ( clientDeletes ) ;
245+ console . log ( `Deleted documents: ${ clientDeleteRes . deletedCount } ` ) ;
246+ // end-delete-client
247+
248+ console . log ( "Operations completed successfully." ) ;
249+ } finally {
250+ await client . close ( ) ;
251+ }
252+ } ) ( ) ;
0 commit comments