Sử dụng Aggregation Framework với $group và $addToSet để gom các giá trị vào mảng.
Tạo collection với document:
> db.specifyReturnFormatDemo.insertOne({"Subject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd364ef71edecf6a1f6c0") }
> db.specifyReturnFormatDemo.insertOne({"Subject":"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd369ef71edecf6a1f6c1") }
> db.specifyReturnFormatDemo.insertOne({"Subject":"SQL Server"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefd36fef71edecf6a1f6c2") }
Hiển thị tất cả document:
> db.specifyReturnFormatDemo.find();
Kết quả
{ "_id" : ObjectId("5cefd364ef71edecf6a1f6c0"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5cefd369ef71edecf6a1f6c1"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5cefd36fef71edecf6a1f6c2"), "Subject" : "SQL Server" }
Truy vấn Aggregation gom tất cả Subject vào một mảng duy nhất:
> db.specifyReturnFormatDemo.aggregate([
{
"$group": {
"_id": 0,
"Subject": { "$addToSet": "$Subject" }
}
},
{
"$project": { "_id": 0, "Subject": 1 }
}
]);
Kết quả
{ "Subject" : [ "SQL Server", "MySQL", "MongoDB" ] }