Выполнение цикла forEach в Mongoose, наоборот - PullRequest
0 голосов
/ 02 октября 2018

В настоящее время я пытаюсь создать страницу в стиле искусственного блога.Вся соответствующая информация находится в MongoDB, и я извлекаю ее с помощью цикла forEach.

`<% blogs.forEach(function(blog){ %>
   <img src="<%= blog.image %>" >
   <a href="/blogs/<%= blog._id%>"><%=blog.title%></a>
  <span><%= blog.created.toDateString() %></span>
  <p><%- blog.body.substring(0, 100) %>...</p>
   <% }) %>`

База данных содержит эти объекты при создании / редактировании сообщения.Когда вы запускаете forEach, он запускается в начале базы данных, а затем работает вперед.Я пытаюсь понять, как сделать так, чтобы это происходило в обратном порядке, поскольку типичный сайт блога будет толкать старые посты вниз по странице, когда публикуется новый контент (на данный момент он отображает первый пост первым, второй секундой и т. Д.)

Я думал о создании цикла for и ограничении его длины с помощью команды .count () mongoose, но не могу понять, как связать его с различными объектами в базе данных.В основном я пытаюсь преобразовать этот forEach для использования переменной (например, [i]).

1 Ответ

0 голосов
/ 02 октября 2018

Используйте мангуст.Это инструмент моделирования объектов MongoDB, предназначенный для работы в асинхронной среде.Mongoose позволяет очень легко работать с MongoDB.Вы можете попробовать это (некоторые из них могут не работать должным образом), надеюсь, это поможет вам.

model_name.find({}).sort('-date').exec(function(err, docs) { ... });
model_name.find({}).sort({date: -1}).exec(function(err, docs) { ... });
model_name.find({}).sort({date: 'desc'}).exec(function(err, docs) { ... });
model_name.find({}).sort({date: 'descending'}).exec(function(err, docs) { ... });
model_name.find({}).sort([['date', -1]]).exec(function(err, docs) { ... });
model_name.find({}, null, {sort: '-date'}, function(err, docs) { ... });
model_name.find({}, null, {sort: {date: -1}}, function(err, docs) { ... });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...