У меня есть две коллекции в проекте Метеор, свободно созданные как это:Заказать метеор найти результаты по индексу в массиве
ItemContainer.insert({
title: title,
items: [],
});
Items.insert({
title: title,
});
Всякий раз, когда новый Item
создается это идентификатор добавляется в items
массив в ItemContainer
.
У меня также есть помощник, как это:
Template.body.helpers() {
items() {
const instance = Template.instance();
const containerId = instance.state.get("currentContainer");
const theseItems = ItemContainer.find({ _id: containerId}).items;
return Items.find({ _id: { $in: items } });
}
}
Вопрос заключается в том, что я хочу, чтобы отсортировать элементы, которые я возвращаю их индекс в массиве элементов. Поэтому, когда я создаю список элементов в браузере, сначала выводится элемент, чей идентификатор находится на items[0]
, а затем items[1]
и так далее. К сожалению, я не могу найти простое решение в документах Mongo.
Я могу придумать некоторые способы сделать это, например, построить объект путем итерации по массиву элементов и вернуть его, но я должен представить себе, что есть более простой способ. Также возможно, что количество предметов вырастет достаточно велико, теоретически тысячи или десятки тысяч.
Кто-нибудь знает простой способ сортировки по индексу массива?
Ммм ... Я, возможно, нашли решение: https://docs.mongodb.com/manual/tutorial/sort-results-with-indexes/ ....... Но я не уверен. Не сможет попробовать это позже. – terrafirma9