Skip to main content

Mongo - Data Modeling

Lesson Objectives#

  1. Explain how to relate documents using foreign keys
  2. Explain how to use Arrays
  3. Explain how to use Embedded Documents
  4. Explain what denormalization is and when to use it

Explain how to relate documents using foreign keys#

db.employees.insert({  _id: ObjectId("4d85c7039ab0fd70a117d730"),  name: "Leto",});db.employees.insert({  _id: ObjectId("4d85c7039ab0fd70a117d731"),  name: "Duncan",  manager: ObjectId("4d85c7039ab0fd70a117d730"),});db.employees.insert({  _id: ObjectId("4d85c7039ab0fd70a117d732"),  name: "Moneo",  manager: ObjectId("4d85c7039ab0fd70a117d730"),});
  1. to find: db.employees.find({manager: ObjectId( "4d85c7039ab0fd70a117d730")})

Explain how to use Arrays#

db.employees.insert({  _id: ObjectId("4d85c7039ab0fd70a117d733"),  name: "Siona",  manager: [    ObjectId("4d85c7039ab0fd70a117d730"),    ObjectId("4d85c7039ab0fd70a117d732"),  ],});
  1. to find: db.employees.find({manager: ObjectId( "4d85c7039ab0fd70a117d730")})
  2. index uses dot notation
  • db.employees.find({ 'manager.0': ObjectId("4d85c7039ab0fd70a117d730")})

Explain how to use Embedded Documents#

db.employees.insert({  _id: ObjectId("4d85c7039ab0fd70a117d734"),  name: "Ghanima",  family: {    mother: "Chani",    father: "Paul",    brother: ObjectId("4d85c7039ab0fd70a117d730"),  },});
  1. can be queried using dot notation
  • db.employees.find({ 'family.mother': 'Chani'})

Explain what denormalization is and when to use it#