You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.5 KiB
1.5 KiB
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'})