Mongo - Data Modeling
Lesson Objectives#
- Explain how to relate documents using foreign keys
- Explain how to use Arrays
- Explain how to use Embedded Documents
- 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"),});- 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"), ],});- to find:
db.employees.find({manager: ObjectId( "4d85c7039ab0fd70a117d730")}) - 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"), },});- can be queried using dot notation
db.employees.find({ 'family.mother': 'Chani'})