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