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+ } ) ( ) ;
0 commit comments