Sử dụng $addToSet trong aggregation để gom các giá trị distinct vào mảng. Tạo collection:
> db.demo207.insertOne({"FavouriteTechnology":"Spring Boot"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d8e7a03d395bdc21346f1") }
> db.demo207.insertOne({"FavouriteTechnology":"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d8e8f03d395bdc21346f2") }
> db.demo207.insertOne({"FavouriteTechnology":"Groovy"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d8ea603d395bdc21346f3") }
Hiển thị tài liệu:
> db.demo207.find();
Aggregation gom tất cả FavouriteTechnology distinct vào một mảng:
> db.demo207.aggregate([ { "$group": { "_id": 0, "FavouriteTechnology": { "$addToSet": "$FavouriteTechnology" } }}, { "$project": { "_id": 0, "FavouriteTechnology": 1 }} ]);Kết quả - mảng unique các công nghệ:
Giải thích:
$addToSetchỉ thêm giá trị chưa có trong mảng (loại bỏ trùng lặp).$groupvới_id: 0gom toàn bộ collection thành một nhóm.$projectloại bỏ _id khỏi kết quả.