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

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