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'})