Я пытаюсь отобразить форум / категорию. Мне нужно, чтобы получить последние сообщения. Проблема в том, что мне также нужны данные о пользователе для каждого сообщения, а также последний ответ.
db.post.find({
"inForum": forumID,
},
{
'sort': [['date', -1]]
},
function(err, cursor) {
cursor.count(function(err, count) {
cursor.skip(skip).limit(20).toArray(function(err, posts) {
var complete = _.after(nodes.length, function () {
res.send(posts)
});
// for every post get its author info and the latest post info
posts.forEach(function (post) {
var users = _.pluck(posts, 'user');
user.load(users, function (profiles) {
_.each(posts,
function(post, k) {
if (profiles[post.user]) post.fieldAvatar = profiles[post.user].fieldAvatar;
});
if (post.latestReply) {
post.load(post.latestReply.id, function (latestReply) {
if (latestReply) post.latestReply = latestReply
complete()
})
}
else {
complete()
}
})
})
});
})
})
Это то, что я делаю, и это кажется мне очень медленным / действительно не элегантным. Я делаю это правильно, и есть ли какой-нибудь совет для ускорения этого?
Спасибо.