Sử dụng aggregate() với $group và $push để gộp mảng. Tạo collection:
> db.demo64.insertOne({"Subjects":["MySQL","MongoDB","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e28762bcfb11e5c34d89936") }
> db.demo64.insertOne({"Subjects":["Oracle","Spring","Python"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e28763fcfb11e5c34d89937") }
Hiển thị tài liệu:
> db.demo64.find();
Aggregation gộp tất cả mảng Subjects thành một mảng lồng nhau:
> db.demo64.aggregate([ { "$group": { "_id": null, "Subjects": { "$push": "$Subjects" } }}, { "$project": { "_id": 0 }} ]);Kết quả - mảng chứa 2 mảng con:
Lưu ý:
$pushgiữ nguyên cấu trúc mảng con. Nếu muốn gộp phẳng (flatten), dùng$unwindtrước rồi$push, hoặc dùng$concatArrays(MongoDB 4.4+).