How to remove duplicate values inside a list in MongoDB?



You can use aggregate framework along with $setUnion operator. Let us first create a collection with documents −

> db.removeDuplicatesDemo.insertOne({"InstructorName":"Chris","InstructorAge":34,"InstructorSubject":    ["Java","C","Java","C++","MongoDB","MySQL","MongoDB"]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5cb9d96c895c4fd159f80807") }

Following is the query to display all documents from the collection with the help of find() method −

> db.removeDuplicatesDemo.find().pretty();

This will produce the following output −

{    "_id" : ObjectId("5cb9d96c895c4fd159f80807"),    "InstructorName" : "Chris",    "InstructorAge" : 34,    "InstructorSubject" : [       "Java",       "C",       "Java",       "C++",       "MongoDB",       "MySQL",       "MongoDB"    ] }

Following is the query to remove duplicate values inside a list in MongoDB −

> db.removeDuplicatesDemo.aggregate([ ...    { "$project": { ...       "InstructorName":1, ...       "InstructorAge" :1, ...       "InstructorSubject" :{ "$setUnion": [ "$InstructorSubject", [] ] } ...    }} ... ]).pretty();

This will produce the following output −

{    "_id" : ObjectId("5cb9d96c895c4fd159f80807"),    "InstructorName" : "Chris",    "InstructorAge" : 34,    "InstructorSubject" : [       "C",       "C++",       "Java",       "MongoDB",       "MySQL"    ] }
Updated on: 2019-07-30T22:30:25+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements