2016-07-21 2 views
0

поэтому я знаком с Collection.find({}, {limit: someNumber}). Вот моя проблема:Как опубликовать ограниченное количество записей из коллекции в Meteor?

У меня есть много записей в Collection, у которых есть поле для сортировки createdAt. Я показываю их разбитый список на клиенте.

Я публикую эту коллекцию и сортирую/ограничивая курсор как на сервере, так и на клиенте. Однако происходит то, что, поскольку данные не отправляются по порядку, сервер фактически не отправляет правильные элементы. Поэтому, если у меня есть 600 записей, но я хочу сначала увидеть первые 30, я всегда вижу 30 элементов списка на экране, но они мерцают и меняются, пока клиент не получит все 600 записей, после чего он сможет их отсортировать правильно.

По существу, Meteor, похоже, игнорирует тот факт, что я хочу, чтобы мой курсор уже отсортировался на стороне сервера.

Что я делаю неправильно? Как я могу сделать сервер отправлять только первые 30 записей (они не должны быть отправлены в порядке, они просто должны быть первый 30 по моему сортировочного правилу)

EDIT: Решив это, проблема была в моем запросе, который искал пустую строку в одном из полей, и это путало сервер.

ответ

0

Вы должны сортировать на сервере:

Collection.find({}, {sort: {createdAt: -1}},limit: someNumber); 
+0

Как я уже говорил в этом вопросе, я как сортировка и ограничения на клиенте и на сервере. –

+0

Если вы ограничиваете свой запрос, клиент не должен получать все записи. Поэтому в вашей публикации должна быть некоторая ошибка. – perusopersonale

+0

Но какая это ошибка? публикация просто возвращает курсор, ничего больше не происходит. –