.distinct()
метод е по-стара реализация, която е по-скоро удобен метод, обвиващ mapReduce. За нещо по-ангажиращо от простите операции трябва да използвате .aggregate()
.
Така че еквивалентът на обвивката:
db.collection.aggregate([
{ "$match": { "$and": [ { "prop1": "" }, { "prop2": "" } ] } },
{ "$group": { "_id": "$messageId" } }
])
Документите просто се формират като верига от BSON документи. Има различни примери тук .