.distinct()
method jest starszą implementacją, która jest bardziej wygodną metodą pakowania mapReduce. W przypadku wszystkiego, co jest bardziej skomplikowane niż proste operacje, powinieneś użyć .aggregate()
.
Więc odpowiednik powłoki:
db.collection.aggregate([
{ "$match": { "$and": [ { "prop1": "" }, { "prop2": "" } ] } },
{ "$group": { "_id": "$messageId" } }
])
Dokumenty są po prostu tworzone jako łańcuch dokumentów BSON. Istnieje wiele przykładów tutaj .