Die .distinct()
-Methode ist eine ältere Implementierung, die eher eine bequeme Methode ist, die mapReduce umschließt. Für alles andere als einfache Operationen sollten Sie .aggregate()
.
Also das Shell-Äquivalent:
db.collection.aggregate([
{ "$match": { "$and": [ { "prop1": "" }, { "prop2": "" } ] } },
{ "$group": { "_id": "$messageId" } }
])
Die Dokumente werden einfach als Kette von BSON-Dokumenten gebildet. Es gibt verschiedene Beispiele hier .