Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tách document theo subdocument với $unwind trong MongoDB

Toán tử $unwind trong aggregate "bẻ" mảng thành nhiều document, mỗi document chứa một element của mảng.

Tạo collection demo276:

> db.demo276.insertOne({"Name":"Chris","Subjects":["MySQL","MongoDB"]});

Áp dụng $unwind trên trường Subjects:

> db.demo276.aggregate([{$unwind:"$Subjects"}])

Kết quả: 1 document gốc thành 2 document, mỗi cái một Subject:

{
   "_id" : ObjectId("5e48f953dd099650a5401a51"),
   "Name" : "Chris",
   "Subjects" : "MySQL"
}
{
   "_id" : ObjectId("5e48f953dd099650a5401a51"),
   "Name" : "Chris",
   "Subjects" : "MongoDB"
}

Ứng dụng: Dùng $unwind trước khi $group, $sort, $match trên các phần tử mảng.