Can one make a relational database using MongoDB? Can one make a relational database using MongoDB? mongodb mongodb

Can one make a relational database using MongoDB?


The idea behind MongoDB is to eliminate (or at least minimize) relational data. Have you considered just embedding the attendance data directly into each student record? This is actually the preferred design pattern for MongoDB and can result in much better performance and scalability.

If you truly need highly relational and normalized data, you might want to reconsider using MongoDB.


The answer depends on how you intend to use the data. You really have 2 options, embed the attendance table, or link it. More on these approaches is detailed here: http://www.mongodb.org/display/DOCS/Schema+Design

For the common use-case, you would probably embed this particular collection, so each student record would have an embedded "attendance" table. This would work because attendance records are unlikely to be shared between students, and retrieving the attendance data is likely to require the student information as well. Retrieving the attendance data would be as simple as:

db.student.find( { login : "sean" } ){  login : "sean",  first : "Sean",   last : "Hodges",  attendance : [    { class : "Maths", when : Date("2011-09-19T04:00:10.112Z") },    { class : "Science", when : Date("2011-09-20T14:36:06.958Z") }  ]}


Yes. There are no hard and fast rules. You have to look at the pros and cons of either embedding or referencing data. This video will definitely help (https://www.youtube.com/watch?v=-o_VGpJP-Q0&t=21s). In your example, the phone number attribute should be on the same table (in a document database), because the phone number of a person rarely changes.