MongoDB: export distinct column value

Viewed 3491

Anyone have idea how to export distinct column value on mongodb using mongoexport command.

Command: db.coll.distinct("uid");

The solution i have tried is :

 mongoexport --csv -d db -c collection -q '{distinct: "collection", "key": "uid"}' -f "uid" -o distinctUid.csv
2 Answers

It's not possible to do it this way. distinct is a database command, and --query option allows to use only a query to filter documents.

If you are using mongodb v3.4 or later, you can use views to aggregate your collection and export it from the view.

First create the view in mongo shell:

db.createView("distinctCollectionUid", "collection", [{ $group: { _id: "$uid"}}]);

Then export it:

mongoexport -d db -c distinctCollectionUid --type=csv -f "_id" -o distinctUid.csv
Related