Looking for FIT3182 Big data management and processing - MUM S1 2026 test answers and solutions? Browse our comprehensive collection of verified answers for FIT3182 Big data management and processing - MUM S1 2026 at learning.monash.edu.
Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!
Jane wants to create two collections in MongoDB called the parent collection and the child collection. The relationship between the two collections is one-to-many. One document in the parent collection has many related documents in the child collection. She has written the following aggregation query.
db.parent.aggregate([
{$unwind:"$myArray"},
{$lookup:
{ from: "child",
localField: "myArray",
foreignField: "_id",
as: "myArrayDetail"}
}])
What kind of join is $lookup?
Following is the structure of the restaurant collection:
{
"address": {
"building": "1007",
"coord": [ 144.946457, -37.840935 ],
"street": "Monash University Bakery",
"zipcode": "3800"
},
"suburb": "Clayton",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1241804700000 }, "grade": "C", "score": 1 },
{ "date": { "$date": 1224857600000 }, "grade": "A", "score": 5 },
{ "date": { "$date": 1261985600000 }, "grade": "B", "score": 9 },
{ "date": { "$date": 1201003200000 }, "grade": "A", "score": 8 },
{ "date": { "$date": 1137705200000 }, "grade": "B", "score": 13 }
],
"name": "Monash Bakery Shop",
"restaurant_id": "317455"
}
Find the restaurants that do not have the cuisine 'Curry', achieved a grade point A and does not belong to the suburb Clayton.
Alice wants to create two collections in MongoDB called the unitEnrolment collection andthe student collection. The relationship between the two collections is one-to-many. Onedocument in the unitEnrolment collection has many related documents in the student collection.
She wrote the following two MongoDB shell commands to populate the database:
db.unitEnrolment.insertOne({"_id":1, "code":"FIT5148", "students":[1,2,3,4,5]})
db.student.insertMany([{"_id":1,"name":"Alita"},{"_id":4,"name":"Nick"},{"_id":5,"name":"Tom"}])
Alice’s aggregation pipeline code produces the following output:
{"_id" : 1, "students" : 1, "details" : [{ "_id" : 1, "name" : "Alita" }]}
{"_id" : 1, "students" : 2, "details" : [ ] }
{"_id" : 1, "students" : 3, "details" : [ ] }
{"_id" : 1, "students" : 4, "details" : [ { "_id" : 4, "name" : "Nick" } ] }
{"_id" : 1, "students" : 5, "details" : [ { "_id" : 5, "name" : "Tom" } ] }
Which of the following aggregation query will produce the above output?
Following is the structure of the restaurant collection:
{
"address": {
"building": "1007",
"coord": [ 144.946457, -37.840935 ],
"street": "Monash University Bakery",
"zipcode": "3800"
},
"suburb": "Clayton",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
{ "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
{ "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
{ "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
{ "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
],
"name": "Monash Bakery Shop",
"restaurant_id": "317455"
}
Write a MongoDB query to find the restaurants that do not prepare the cuisine 'Curry' and their grade score is more than 70
A collection RACE has been created in MongoDB. Some of the documents have been inserted using the following MongoDB shell command:
db.race.insertMany([
{"_id": 102,
"event": "Great Ocean Road Ultra 2017",
"distance": 60,
"runners": [{ "name": "Steve Smith", "gender": "M", "age": 45 },
{ "name": "Debbie Picket", "gender": "F", "age": 47 } ]},
{"_id": 103,
"event": "Great Ocean Road Maratahon 2017",
"distance": 42.2,
"runners": [{ "name": "Cathy Freeman ", "gender": "F", "age": 25 },
{ "name": "Sebastian Coe", "gender": "M", "age": 62 } ]
}])
The following queries are written to find the name of all the female runners older than 60 years old.
Approach A
db.race.aggregate(
{$unwind:"$runners"},
{$match:{"runners.gender":"F","runners.age":{$gt:60}}}
)
Approach B
db.race.aggregate(
{$match:{"runners":{$elemMatch:{"gender":"F","age":{$gt:60}}}}},
{$unwind:"$runners"},
{$match:{"runners.gender":"F","runners.age":{$gt:60}}}
)
Assume there are 100 documents in the collection and each document contains 1000 runners in the runners array. The number of documents (event document) containing female runners older than 60 is 15. How many documents will be in the results of the $unwind operation in Approach B?
Consider the collection table1 below.{ "_id" : ObjectId("5285bd678154c4747b705b4f"), "item_code" : "I001", "category" : [ "boy", "girl" ], "description" : [ { "agegroup" : "3-5", "flavour" : "chocolate", "price" : 5 }, { "agegroup" : "6-9", "flavour" : "strawberry", "price" : 6 }, { "agegroup" : "10-13", "flavour" : "mango", "price" : 7 } ]}{ "_id" : ObjectId("5285bd808154c4747b705b50"), "item_code" : "I002", "category" : [ "boy", "girl" ], "description" : [ { "agegroup" : "3-5", "flavour" : "vanilla", "price" : 3 }, { "agegroup" : "6-9", "flavour" : "lemon", "price" : 6 }, { "agegroup" : "10-13", "flavour" : "mango", "price" : 5 } ]}
Select all documents from the collection "table1" which satisfy the following conditions:The age group must be within "10-13"The price must be more than or equal to 7
Alice, our DBA, wrote the following query to find posts made on 10th and 11th ofFebruary 2023.
db.posts.find ({"created_at": {"$in": ["2023-02-10", "2023-02-11"]}},{"title":1, "comments.text":1, "_id":0})
Which another operator can be used to produce the same result?
You have an e-commerce database with two collections: orders (each order document has an array field productIds) and products (each product document has _id as the product ID and other details). You want an aggregation pipeline that, for each order, outputs a separate document for each product in that order, including the product’s details. Which of the following pipelines achieves this?
Which of the following commands removes a single document that matches the condition that Author is Joe?
A collection recording the movies and the awards they have received has been created in MongoDB. The documents in the collection are designed such that an award will only be recorded if the movie won or was nominated for that particular award category. For example, according to the collection, the movie Matrix was nominated for three categories (best picture, best sound editing and best screenplay). It won only one category, best music. Only one result can be recorded for each category. If a movie was nominated and then won, the result will be recorded as won. If a movie was nominated and did not win, the result will be recorded as nominated. The wins field records the total number of awards won including the Oscar.
The following MongoDB shell command has been successfully executed.
db.movieAward.insertMany([
{"title":"Matrix",
"awards":{
"oscars":[ {"award":"bestMusic","result":"won"},
{"award":"bestPicture","result":"nominated"},
{"award":"bestSoundEditing","result":"nominated"},
{"award":"bestScreenplay","result":"nominated"}],
"wins":56,
"nominations":86,
"text":"Won 1 Oscar. Another 56 wins and 86 nominations."
}},
{"title":"Kungfu Panda",
"awards":{
"oscars":[{"award":"bestAnimatedFeature","result":"nominated"},
{"award":"bestMusic","result":"won"},
{"award":"bestPicture","result":"won"},
{"award":"bestSoundEditing","result":"nominated"},
{"award":"bestScreenplay","result":"nominated"}],
"wins":12,
"nominations":40,
"text":"Won 2 Oscars. Another 56 wins and 86 nominations."
}}])
Two programmers Jane and Billy are writing a query to count all movies that won or was nominated for best picture at the Oscars.
Jane wrote the following: db.movieAward.find({"awards.oscars.award":"bestPicture"}).count()
Billy wrote the following:
db.movieAward.find(
{$or:[{"awards.oscars":{$elemMatch:{"award":"bestPicture","result":"won"}}},
{"awards.oscars":{$elemMatch:{"award":"bestPicture","result":"nominated"}}} ]
}).count()
Although the codes are different, both approaches produce the same list of movies. True or False?