Допустим, у меня есть коллекция пользователей:
{ name: "John", id: 1 }
{ name: "Snow", id: 2 }
И оба являются покупателями моего магазина, вещи, которые они купили, есть у меня в другой коллекции
{ buyer: 1, item: 'winter_clothes', date: 0001 }
{ buyer: 2, item: 'sword', date: 0002 }
{ buyer: 1, item: 'direwolf_puppy_food', date: 0002 }
(дата будет своего рода отметкой времени)
Могу ли я с помощью одного запроса получить последний купленный товар для всех моих клиентов?
Я думал, что смогу сделать это с помощью отчетливый, но, похоже, это не то же самое, что в MySQL.

Вы можете использовать приведенный ниже конвейер агрегации в качестве справки для достижения того, что вы ищете:
db.customers.aggregate([{'$lookup':
{
'from': 'items',
'localField': 'id',
'foreignField':'buyer',
'as': 'details'
}},{'$unwind':'$details'},
{'$sort':{'name':-1,'details.date':-1}},
{'$group':{'_id':'$name','details':{'$first':'$details'}}}])
Вы можете легко сделать это с помощью агрегации
$lookupи$sort.