Example 1 — Developers, sales, and orders
db.developers.drop()
db.sales.drop()
db.orders.drop()
db.developers.insertMany([
{ _id: 1, name: { first: "Grace", last: "Hopper" }, lang: "COBOL" },
{ _id: 2, name: { first: "John", last: "Backus" }, lang: "Fortran" },
{ _id: 3, lang: "Python", note: "Missing name object" }
])
db.sales.insertMany([
{ _id: 1, item: "butter", price: 10, quantity: 2, status: "C", date: ISODate("2025-03-01T08:00:00Z") },
{ _id: 2, item: "cream", price: 20, quantity: 1, status: "A", date: ISODate("2025-03-01T09:00:00Z") },
{ _id: 3, item: "jam", price: 5, quantity: 10, status: "C", date: ISODate("2025-03-15T09:00:00Z") },
{ _id: 4, item: "muffins", price: 5, quantity: 10, status: "C", date: ISODate("2025-03-15T09:00:00Z") }
])
db.orders.insertMany([
{
_id: 1,
customer: "Acme Corp",
items: [
{ sku: "WGT-01", qty: 3, price: 29.99 },
{ sku: "WGT-02", qty: 1, price: 49.99 }
]
},
{
_id: 2,
customer: "Beta LLC",
items: [
{ sku: "LMP-01", qty: 2, price: 19.99 }
]
}
]) How It Works
Three collections: embedded name objects (one doc missing name), sales with status codes, and orders with items arrays—covering promote, compute, and unwind patterns.

