// DASC 5333 11/19/2024 mongorestore --archive="toyu-db.gz" --gzip --nsFrom='toyu.*' --nsTo='toyu.*' use tinker // db: default database. // db.test1: test1 collection of db. // insertOne: a method of a collection /* first arugment to insertOne: { "StudentId" :1, "StudentName" : "Joseph Connor" } */ // db.collectio.insertOne( db.test1.insertOne( { "StudentId" :1, "StudentName" : "Joseph Connor" } ) doc = { "StudentId" :1, "StudentName" : "Joseph Connor" } doc db.test1.insertOne(doc) db.test1.find() if (db.test1.find(doc).count() == 0) { db.test1.insertOne(doc) } doc2 = { "StudentId" :1, "StudentName" : "Jane Smith" } doc2 if (db.test1.find(doc2).count() == 0) { db.test1.insertOne(doc2) } // remove tinker show dbs db.dropDatabase() show dbs // create index // db.collection.createIndex(keys, options, commitQuorum) // keys: { "StudentId": 1 }; 1: true // options: { unique: true } db.test1.createIndex( { "StudentId": 1 }, { unique: true } ) doc = { "StudentId" :1, "StudentName" : "Joseph Connor" } doc db.test1.insertOne(doc) db.test1.insertOne(doc) doc2 = { "StudentId" :25, "StudentName" : "Cindy Jones" } db.test1.insertOne(doc2) db.test1.insertMany([ { "StudentId" :2, "GPA": 3.72 }, { "StudentId" :3, "GPA": 1.69, "height": 170 }, { "BCAssetId": "78c22fc6-5dec-11ec-bf63-0242ac130002", "BCAssetType": "BCAssetTypeMetadata", "BCAssetName": "BCAssetTypeMetadata: MBSEModel", "ForBCAssetType": "MBSEModel", "Version": { "Version": "1.0", "Subversion": null, "StartTime": "2019-01-13T07:23:13+06:00" } } ]) db.test1.find() // Show all students. use toyu db.student.find() // Getting rid of _id: // db.collection.find(query, projection, options) // query: {}; all documents. // projection: { "_id": 0 }; 0: false db.student.find({}, { "_id": 0 } ) // // Show all information of students majoring in 'CINF'. // query: {"major": "CINF"} // projection: { "_id": 0 }; 0: false db.student.find({"major": "CINF"}, { "_id": 0 } ) // Show all student names. Return an array of student objects. // query: {} // projection: { "fname": 1, "lname":1, "_id": 0 } db.student.find({}, { "fname": 1, "lname":1, "_id": 0 } ) db.student.find({"mjor": "CINF"}, { "_id": 0 } ) db.student.find({"major": "CIS"}, { "_id": 0 } ) /* Show all student names in this format: student #0: Tony Hawk student #1: Mary Hawk student #2: David Hawk student #3: Catherine Lim student #4: Larry Johnson student #5: Linda Johnson student #6: Lillian Johnson student #7: Ben Zico student #8: Bill Ching student #9: Linda King Solution: */ result = db.student.find({}, { "fname": 1, "lname":1, "_id": 0 } ).toArray() result.forEach((x,i) => console.log('student #' + String(i) + ': ' + x["fname"] + ' ' + x["lname"])) result.forEach((x,i) => console.log('student #' + String(i+1) + ': ' + x["fname"] + ' ' + x["lname"])) // Show the names and credits (ach) of students majoring in 'CSCI' and having 40 or more credits. db.student.find( { "major": "CSCI", "ach" : {$gte: 40} }, { "fname": 1, "lname":1, major: 1,"ach":1, "_id": 0 } ) // [6] Show the first name and last name of students with a first name starting with a L or B, case insensitive. // /.../: regular expression: pattern to be matched. // ^: beginning of the string's location // [lb]: character class that matches l or b. // $options: "i": case insensitive options. db.student.find( { "fname": { $regex: /^[lb]/, $options: "i" } }, { "fname": 1, "lname":1, "_id": 0 } ) // [7] Show the names and credits (ach) of students majoring in 'CSCI' and having 40 or more credits. db.student.find( { "$and": [ { "major": "CSCI"}, { "ach": {"$gte": 40}} ] }, { "fname": 1, "lname":1, "major": 1,"ach":1, "_id": 0 } ) db.faculty.aggregate([ {"$group" : {_id:"$deptCode", "count":{$sum:1}}} ]) db.faculty.aggregate([ {"$group" : {_id:"deptCode", "count":{$sum:1}}} ]) db.faculty.aggregate( [ { $group: { "_id": "$deptCode", "count": {$sum:1}} }, { $project: { "deptCode": "$_id" , "num_faculty": "$count", "_id": 0}} ] ) // [9] Show the names of students who have enrolled in 10000: joining two document db.student.aggregate([ {$lookup: { from: "enroll", let: {joinValue: '$stuId'}, pipeline: [ { $match: { $expr: { $and: [ { $eq: [ "$stuId", "$$joinValue" ] }, { $eq: [ "$classId", 10000 ] } ] } } } ], as: "enrollment" }}, { $match: {"enrollment": { $ne: [] }}}, { $project: { "fname": 1, "lname": 1, "_id": 0}} ])