У меня очень простая схема монго, к которой я обращаюсь с мангустом
Я могу сопоставить имя пользователя и имя с полем каждого уведомления из с помощью заполнения, проблема в том, что я не могу заставить какую-либо сортировку работать в поле даты
С этим кодом я получаю сообщение об ошибке
MongooseError: невозможно заполнить сортировку по пути, из-за уведомлений, потому что это подсвойство массива документов
Можно ли сделать это по-другому или по-новому (глубокое заполнение, виртуальные машины)? Я на Мангусте 5.
Я бы предпочел не использовать ванильный javascript для последующей сортировки объекта или создания отдельной схемы
var UserSchema = new Schema({
username: String,
firstname: String,
notifications: [
{
from: { type: Schema.Types.ObjectId, ref: 'User'},
date: Date,
desc: String
}
]
});
app.get('/notifications', function(req, res) {
User.findOne({ _id: req._id }, 'notifications')
.populate({
path: 'notifications.from',
populate: {
path: 'from',
model: 'User',
options: { sort: { 'notifications.date': -1 } }
}
})
.exec(function(err, user) {
if (err) console.log(err)
})
});
Этому возможному дубликату почти 2 года о Монго. Я спрашиваю, есть ли новые или другие способы сделать это в Mongoose, поскольку он немного изменился с 2016 года с новыми функциями.