Movie Maniacs is a site which lists top charts of movies and have put an emphasis in follower engagement. They are active on Facebook and Twitter and share the latest updates and news to their followers. However, they have recently decided to create a page where viewers can rate the movies on the list and leave comments for others to see. They have asked you to come up with a database using MongoDB to be able to store their movie lists and allow viewers to easily rate and review the movies.
- Create a MongoDB database using the data provided to you in the MovieData_Task2.xls spreadsheet. (There should only be one collection movies with each movie as a single document).
- Insert data from the provided .xlsx file into MongoDB using the insert command
- Create indexes which you think will be needed and beneficial
- Create the following queries (all output should be displayed in a formatted way):
o List all the movies in the collection
o List the movies that are from Japan
o List just the directors name(s) for every movie
o List the distinct names of every director
o Count the number of movies in the list
o Return only the movies that have won at least one Oscar
o List the movies that were released before 1980
o Return the title and average rating of each movie
o Return the title of movies that have had no ratings or comments - Update the title of movie 6 to “E.T.”
- Add a new field called notes to the following movies:
o 12 Terminator and Terminator 2 are rated together
o 18 The trilogy consists of the three movies.
Movie Document Structure
This report is on the basis of the case study of the Movie Maniac Site. They provide the details of the movies for their clients, today they have to provide the unpretentious components of the flicks for their lovers and they also need to get the reviews of films and store the overview information inside their repository and a short time later they could display those opinions, for example, assessments and remarks for their films which fuses the movie title, director of the movie, lead performing specialists of the movie, release time of the picture, number of Oscars won by the movie and the country of the movie, today they have to store the opinions for the movie, a movie may have different overviews, reviews could be given by a client. (Abramova & Bernardino, 2013)
MongoDB is a No SQL database. It is an open-source, cross-stage, report situated database written in C++.
Here we are using MongoDB to store the information about the movies, as MongoDB stores, the information in the form of the document, in this scenario movie document is prepared for each movie; the structure of the document contains the information about the movies. (Banker, 2011)
- A movie has a unique id which is an integer type named the movieId.
- The movie is released on a specific date in a year, thus we need to store the Release Date of the movie for further records. There is releaseDate field for storing the release date of the movie, which is integer type which contains the release year of the movie. (Islam, 2011)
- A movie has a director but there is mentioned that there could be multiple directors for that we have field director name in the document that is a list of string. It can contain multiple directors or a single director.
- Every movie has some actors and the no of actors / actresses is most of the time be multiple, for storing the information of the actors worked in the movie we have a field name actors which type is list of strings, it contains the name of all the leading actors of the movie. (Lawrence, 2014)
- A movie can have series of sub movies so it can have multiple titles series wise for that we can have a title field in the database which can be a list of string, it can have multiple titles as well as a single title of the movie.
- Movie won awards in movie award shows. Oscar is world famous word class award show in the movie industry; movie can win Oscar awards more than one in multiple categories. For Oscars, there is a field name Oscars which is integer type that contains the number of Oscars won by the movie. (Leonard, 2013)
- Movie maniac owners want to provide the functionality to the users to submit their reviews about the movies so that it will help to other users to pick the movie of their choice and they can pick the movie based on the reviews given by the users.
A movie can have multiple reviews that would be given by the movie maniac users, for that user only need to submit his/her name along with the rating out of 10 and the comment about the movie
Thus reviews would be a list that contains multiple objects that have the name of the user, rating out of 10 and the comment about the movie. (Membrey & Plugge & Hawkins, 2011)
Structure of the movie document would look like this….
{
"movieId" : 1,
"title" : [
"2001"
],
"director" : [
"Stanley Kubrick"
],
"actors" : [
"Daniel Richter",
"Gary Lockwood",
"Keir Dullea",
"William Sylvester"
],
"releaseDate" : [1968],
"oscars" : 1,
"country" : "USA"
"reviews" [
{
"name": "Mike",
"rating": 6,
"comment": "Fantastic movie."
},
{
"name": "Pike",
"rating": 9,
"comment": "Just Awesome."
}
]
}
// Output of the records will be like
{
"_id" : ObjectId("5b900a7ad0ea0f2aecf4600d"),
"movieId" : 3,
"title" : [
"Blade Runner"
],
"director" : [
Storing Reviews with Embedded Documents
"Ridley Scott"
],
"actors" : [
"Harrison Ford",
"Rutger Hauer",
"Sean Young"
],
"releaseDate" : [
1982
],
"country" : "USA"
}
{
"_id" : ObjectId("5b900b1ed0ea0f2aecf46035"),
"movieId" : 4,
"title" : [
"Alien"
],
"director" : [
"Ridley Scott"
],
"actors" : [
"Ian Holm",
"John Hurt",
"Sigourney Weaver",
"Tom Skerritt"
],
"releaseDate" : [
1979
],
"oscars" : 1,
"country" : "USA"
}
Indexes are used in the database to access data or information in easy way; indexes are just like the book indexes, if you want to query some information indexes are used to start the searching from the appropriate record and not all records. In this database release date of the movie, a field is being set to index. It will help us to find the record very easily. If we want to display only the movies released before 1980 then index what will do is it will not search for all the records and check them whether it has been released before 1980 or not but it will sort the movies and start searching for some record and not all. (Stanescu & Brezovan & Burdescu, 2016)
There are many alternatives are available in the market to the MongoDB, some are written below.
- MySQL: - The leading database choice for web-based apps, optimized for web apps, can scale to thousand queries per second nut some issues with stability and clustering. MySQL works utilizing customer/server design in which the server keeps running on the machine containing the databases and customers associate with the server over a system. The server working frameworks is typically a Linux (like Redhat 9.0 and so forth.) or Windows 2000 working framework. Commonly mySQL is upheld on Windows XP, Windows Server 2003, Red Hat Fedora Linux, and Debian Linux, and others. Likewise with some other customer/server application, MySQL is a multi-client database framework, which means a few clients can get to the database at the same time. (Okman & Gal-Oz & Gonen & Gudes & Abramov, 2011)
- CouchDB: - Database consistency that is based on bi- directional replication, it is best for web applications that handled the huge amount of data. CouchDB is a database that totally grasps the web. Store your information with JSON reports. Access your reports with your internet browser, by means of HTTP. Question, consolidate, and change your records with JavaScript. CouchDB functions admirably with present day web and versatile applications. You can circulate your information, effectively utilizing CouchDB's incremental replication. CouchDB bolsters ace setups with programmed strife identification. (Parker & Poe & Vrbsky, 2013)
- Cassandra: - Apache is an open source, scalable, non-relational database. Cassandra is able to scalable while still being reliable, it is easy to deploy over multiple servers. Cassandra utilizes a partitioner, or parceling key, to decide how information is appropriated over the hubs that make up a database group. A partitioner is a hashing component that takes a table column's essential key, figures a numerical token for it, and allocates it to one of the hubs in a bunch. While Cassandra has numerous partitioners from which to pick, the default partitioner randomizes information over a group and guarantees an even conveyance of the majority of the information. Moreover, Cassandra consequently keeps up the equalization of information over a bunch notwithstanding while existing hubs are expelled or new hubs are added to a framework. (Sattar & Lorenzen & Nallamaddi, 2013)
We realize that MongoDB is a pattern less database. That implies we can have any sort of information in a different archive. This thing gives us adaptability and a flexibility to store information of various sorts.
We can store vast information by conveying it to a few servers associated with the application. On the off chance that a server can't deal with such major information at that point there will be no disappointment condition. The term we can use here is "auto-sharding".
MongoDB is a record situated database. It is anything but difficult to get to records by ordering. Consequently, it gives quick question reaction. The speed of MongoDB is 100 times speedier than the social database. (Wei-Ping & Ming-Xin & Huan, 2011)
- Join not supported.
- High memory use
- Limited Data Size
- Limited Nesting
As in current scenario there are One to one and one to many relationship which are handled by the embedded document –
Reviews will have ratings and the comments for the movie and it is handled by the embedded documents like this-
review : [
{
name : “person 1”,
rating : 3,
comment : ” Comment about a movie by person 1”
},
{
name : “person 2”,
rating : 4,
comment : ” Comment about a movie by person 2”
}
]
- Store the poster of the movies and display them to user as a picture.
- Store the backstage stories happened during the shooting time of the movie.
- Store facts and crispy information about the movies which user don’t usually get to know.
- Add the genre to the movies.
- They can add reviews of the leading actor actresses about the movies.
- They can add the soundtracks of the movies
- List of top 10 movies from past few months or week.
- Total collection of the movies weekly.
- Brief summary about the movie.
References
Abramova, V. and Bernardino, J., 2013, July. NoSQL databases: MongoDB vs cassandra. In Proceedings of the international C* conference on computer science and software engineering (pp. 14-22). ACM.
Banker, K., 2011. MongoDB in action. Manning Publications Co..
Chodorow, K., 2013. MongoDB: The Definitive Guide: Powerful and Scalable Data Storage. " O'Reilly Media, Inc."
Islam, R., 2011. PHP and MongoDB Web Development Beginner¿ s Guide. Packt PublishingLtd.
Lawrence, R., 2014, March. Integration and virtualization of relational SQL and NoSQL systems including MySQL and MongoDB. In Computational Science and Computational Intelligence (CSCI), 2014 International Conference on (Vol. 1, pp. 285-290). IEEE.
Leonard, A., 2013. Pro Hibernate and MongoDB. Apress.
Lv, Q. and Xie, W., 2014. A real-time log analyzer based on MongoDB. In Applied Mechanics and Materials (Vol. 571, pp. 497-501). Trans Tech Publications.
Membrey, P., Plugge, E. and Hawkins, D., 2011. The definitive guide to MongoDB: the noSQL database for cloud and desktop computing. Apress.
Okman, L., Gal-Oz, N., Gonen, Y., Gudes, E. and Abramov, J., 2011, November. Security issues in nosql databases. In Trust, Security and Privacy in Computing and Communications (TrustCom), 2011 IEEE 10th International Conference on (pp. 541-547). IEEE.
Parker, Z., Poe, S. and Vrbsky, S.V., 2013, April. Comparing nosql mongodb to an sql db. In Proceedings of the 51st ACM Southeast Conference (p. 5). ACM.
Sattar, A., Lorenzen, T. and Nallamaddi, K., 2013. Incorporating NoSQL into a database course. acm Inroads, 4(2), pp.50-53.
Stanescu, L., Brezovan, M. and Burdescu, D.D., 2016, September. Automatic mapping of MySQL databases to NoSQL MongoDB. In Computer Science and Information Systems (FedCSIS), 2016 Federated Conference on (pp. 837-840). IEEE.
Wei-Ping, Z., Ming-Xin, L.I. and Huan, C., 2011, May. Using MongoDB to implement textbook management system instead of MySQL. In Communication Software and Networks (ICCSN), 2011 IEEE 3rd International Conference on (pp. 303-305). IEEE.
To export a reference to this article please select a referencing stye below:
My Assignment Help. (2021). Using MongoDB For Data Storage On Movie Maniac Site, Essay.. Retrieved from https://myassignmenthelp.com/free-samples/ict704-non-relational-database-systems/flexible-database.html.
"Using MongoDB For Data Storage On Movie Maniac Site, Essay.." My Assignment Help, 2021, https://myassignmenthelp.com/free-samples/ict704-non-relational-database-systems/flexible-database.html.
My Assignment Help (2021) Using MongoDB For Data Storage On Movie Maniac Site, Essay. [Online]. Available from: https://myassignmenthelp.com/free-samples/ict704-non-relational-database-systems/flexible-database.html
[Accessed 12 November 2024].
My Assignment Help. 'Using MongoDB For Data Storage On Movie Maniac Site, Essay.' (My Assignment Help, 2021) <https://myassignmenthelp.com/free-samples/ict704-non-relational-database-systems/flexible-database.html> accessed 12 November 2024.
My Assignment Help. Using MongoDB For Data Storage On Movie Maniac Site, Essay. [Internet]. My Assignment Help. 2021 [cited 12 November 2024]. Available from: https://myassignmenthelp.com/free-samples/ict704-non-relational-database-systems/flexible-database.html.