O
.distinct()
O método é uma implementação mais antiga que é mais um método de conveniência que envolve mapReduce. Para qualquer coisa mais envolvida que operações simples, você deve usar .aggregate()
. Então, o equivalente do shell:
db.collection.aggregate([
{ "$match": { "$and": [ { "prop1": "" }, { "prop2": "" } ] } },
{ "$group": { "_id": "$messageId" } }
])
Os documentos são formados apenas como uma cadeia de documentos BSON. Existem vários exemplos aqui .