Я как бы новичок, когда дело доходит до NoSQL и Mongoose. Я искал немного, но не мог найти то, что искал (это еще более затрудняет, что я действительно не знаю ответа).Mongoose NodeJS - Найти последнюю вставленную запись на пользователя
В принципе, у меня есть список записей, которые добавляются пользователями. Эти записи содержат некоторые данные, и я хотел бы иметь список последних вставленных сообщений каждого пользователя.
В SQL я бы написал;
SELECT * FROM records ORDER BY inserted_date GROUP BY user_id;
Это вернет такой набор;
[
{user: 2, insert_date: 2015-08-12T15:15:00, message: "Hi"},
{user: 3, insert_date: 2015-08-12T15:12:00, message: "Also hi"},
{user: 5, insert_date: 2015-08-12T15:14:00, message: "Not hi"}
]
Я искал вокруг, нашел ответы, но они, похоже, не работали.
Я пробовал;
https://stackoverflow.com/a/7570091/1493455
И некоторые другие агрегатная штучка, как это;
Record.aggregate(
{},
{
$group: {
_id: '$user_id',
inserted: { $last: "$inserted" },
message: { $last: "$message" }
}
},
function(err, messages) {
console.log(err, messages);
}
);
который я скопировал из другого ответа - но я не очень понимаю, что его делать, и что его даже должен делать.
Я мог бы использовать запрос сортировки и ограничения для каждого пользователя, но это кажется очень неэффективным.
Я был бы рад, если кто-то может мне точку в правильном направлении :)
Возможно, сейчас я нашел дублирующий вопрос; http://stackoverflow.com/questions/29410749/mongoose-find-last-message-from-each-user?rq=1 Я вернусь через секунду. –