Я пытаюсь реализовать distinct()
с sort()
, но он не работает. В документации также сказано, что он не поддерживается, поэтому я попытался использовать aggregate()
, чтобы найти значения.
С distinct()
я пытаюсь как
HISTORY.distinct("source", { "sourcedBy": "Nithin" }, function (error, source) {
console.log(source);
});
Я получаю вывод, но я хочу, чтобы результаты основывались на нисходящем _id
и ограничивались тремя последними различными значениями.
Такиспользуя aggregate()
Я написал такой запрос
HISTORY.aggregate([
{ "$match": { "sourcedBy": "Nithin" } },
{ "$group": { _id: { source: "$source" } } },
{ "$project": { _id: 0, source: "$_id.source" } },
{ "$limit": 3 },
{ "$sort": { _id: -1 } }
]).exec((err, source) => {
if (err) throw err;
console.log(source);
});
Но он дает пустой массив.
Я что-то не так делаю?