To split a document by its subdocuments, use $unwind in MongoDB. Let us create a collection with documents −
> db.demo276.insertOne({"Name":"Chris","Subjects":["MySQL","MongoDB"]}); { "acknowledged" : true, "insertedId" : ObjectId("5e48f953dd099650a5401a51") }
Display all documents from a collection with the help of find() method −
> db.demo276.find().pretty();
This will produce the following output −
{ "_id" : ObjectId("5e48f953dd099650a5401a51"), "Name" : "Chris", "Subjects" : [ "MySQL", "MongoDB" ] }
Following is the query to split a document by its subdocuments −
> db.demo276.aggregate( [ { $unwind : "$Subjects" } ] )
This will produce the following output −
{ "_id" : ObjectId("5e48f953dd099650a5401a51"), "Name" : "Chris", "Subjects" : "MySQL" } { "_id" : ObjectId("5e48f953dd099650a5401a51"), "Name" : "Chris", "Subjects" : "MongoDB" }