Để projection mảng đa chiều, cần dùng aggregation framework. Tạo collection với mảng đa chiều cho điểm sinh viên:
> db.multiDimensionalArrayProjection.insertOne(
{
"StudentFirstName" : "Chris",
"StudentMarks" : [ [98, 99],[56,79] ]
}
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cc6b75a9cb58ca2b005e66c") }
Hiển thị document:
> db.multiDimensionalArrayProjection.find().pretty();
Kết quả:
{ "_id" : ObjectId("5cc6b75a9cb58ca2b005e66c"), "StudentFirstName" : "Chris", "StudentMarks" : [ [ 98, 99 ], [ 56, 79 ] ] }
Truy vấn projection mảng đa chiều (lấy phần tử thứ 2 của mảng con đầu tiên):
> db.multiDimensionalArrayProjection.aggregate([
{ $unwind: '$StudentMarks' },
{ $limit: 1 },
{ $project: { _id: 0, StudentMarks: 1 } },
{ $unwind: '$StudentMarks' },
{ $skip: 1 },
{ $limit: 1 }
]);
Kết quả:
{ "StudentMarks" : 99 }