Skip to content

Instantly share code, notes, and snippets.

@rareddy
Created September 24, 2015 15:02
Show Gist options
  • Save rareddy/6096dc2f2cd629d1436f to your computer and use it in GitHub Desktop.
Save rareddy/6096dc2f2cd629d1436f to your computer and use it in GitHub Desktop.
> db.inventory.insert(
... {
... item: "ABC1",
... details: [{
... model: "14Q3",
... manufacturer: "XYZ Company"
... },
... {
... model: "14Q4",
... manufacturer: "ABC Company"
... }],
... stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],
... category: "clothing"
... }
... )
WriteResult({ "nInserted" : 1 })
>
> db.inventory.aggregate( [ { $unwind : "$stock" } ] );
{ "_id" : ObjectId("56040fcf3bcf6e956317c191"), "item" : "ABC1", "details" : [ { "model" : "14Q3", "manufacturer" : "XYZ Company" }, { "model" : "14Q4", "manufacturer" : "ABC Company" } ], "stock" : { "size" : "S", "qty" : 25 }, "category" : "clothing" }
{ "_id" : ObjectId("56040fcf3bcf6e956317c191"), "item" : "ABC1", "details" : [ { "model" : "14Q3", "manufacturer" : "XYZ Company" }, { "model" : "14Q4", "manufacturer" : "ABC Company" } ], "stock" : { "size" : "M", "qty" : 50 }, "category" : "clothing" }
>
>
> db.inventory.aggregate( [ { $unwind : "$details"}, { $unwind : "$stock" } ] );
{ "_id" : ObjectId("56040fcf3bcf6e956317c191"), "item" : "ABC1", "details" : { "model" : "14Q3", "manufacturer" : "XYZ Company" }, "stock" : { "size" : "S", "qty" : 25 }, "category" : "clothing" }
{ "_id" : ObjectId("56040fcf3bcf6e956317c191"), "item" : "ABC1", "details" : { "model" : "14Q3", "manufacturer" : "XYZ Company" }, "stock" : { "size" : "M", "qty" : 50 }, "category" : "clothing" }
{ "_id" : ObjectId("56040fcf3bcf6e956317c191"), "item" : "ABC1", "details" : { "model" : "14Q4", "manufacturer" : "ABC Company" }, "stock" : { "size" : "S", "qty" : 25 }, "category" : "clothing" }
{ "_id" : ObjectId("56040fcf3bcf6e956317c191"), "item" : "ABC1", "details" : { "model" : "14Q4", "manufacturer" : "ABC Company" }, "stock" : { "size" : "M", "qty" : 50 }, "category" : "clothing" }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment