Я запрашиваю Collection
с 350k + Documents
. Я запрашиваю field
, используя предложение IN
, где IN
представляет собой массив из 27k + полей.
На самом деле кажется, что это довольно быстро возвращается в Mongoose
. Однако с некоторыми совпадениями каждого элемента в IN
может быть связано несколько Documents
. Я бы хотел, чтобы на каждое совпадение возвращался только 1 документ (отсортированный по другому полю). Возможно ли это?
Пример Допустим, у меня есть Collection
Fruit.
[
{type:'apple', price:10},{type:'apple', price:5},{type:'apple', price:3},
{type:'orange', price:2},
{type:'pear', price:12}, {type:'pear', price:2}
]
Итак, в настоящее время у меня есть
const types = ['apple', 'orange', 'pear'];
//Will return full example above
//Returns 12k Docs in real app but bc multiple Docs are returned per item in IN
Fruit.find({type: { $in: types }}, (err, results) => {
if (err) return console.error(err);
console.log(results);
});
Я бы хотел просто
[
{type:'apple', price:10}
{type:'orange', price:2},
{type:'pear', price:12}
]
Как я могу настроить свой запрос, чтобы сделать что-то вроде этого ? Спасибо! вернулся. Поэтому вместо всех документов, соответствующих типу, я получаю только 1 с самой высокой ценой.