У меня есть простая схема записи, которая содержит массив идентификаторов пользователей, которым понравился этот пост:
const PostSchema = new Schema({
title:{type: String, required: true},
content: {type: String, required: true },
tags: [{type:String}],
author: {type:mongoose.Schema.Types.ObjectId, ref:"User", required:true},
likes: [{ type:mongoose.Schema.Types.ObjectId, ref:"User", required:false}],
createTime: {type:Date, default:Date.now}
})
Я хочу заказать мои документы, количество лайков,другими словами, сортируйте мои сообщения по длине массива лайков.Я пытаюсь что-то вроде этого, но это не работает:
// @route GET api/posts
router.get('/',(req, res)=>{
Post.aggregate([{ $addFields: {likesCount:{$size:"likes"}} }]);
Post.find()
.populate('author','name email')
.sort({likesCount:1})
.then(posts=> res.json(posts))
.catch(err=>console.log(err))
})
Я понятия не имею, как сделать это правильно.Пожалуйста, помогите.Заранее спасибо:)