猫鼬按日期排序,多个查询

我的网站上有一个“已关注”部分,它会检索用户已关注的所有用户的帖子。有没有办法让这些按日期排序?


这是到目前为止的代码:


exports.followedPosts = async (req, res) => {

  try {

    const user = await User.findById(req.user._id);

    const posts = [];


    for (const follow of user.follows) {

      const partPosts = await Post.find({ author: follow.user })

        .select('-comments')

        .populate('author')

        .exec();

      for (const post of partPosts) {

        posts.push(post);

      }

    }

    res.send(posts);

  } catch (err) {

    console.error(err.message);

    res.status(500).send('server error');

  }

};


繁华开满天机
浏览 76回答 1
1回答

慕婉清6462132

您可以使用$in在一个查询中找到关注用户的所有帖子并对该查询进行排序。例子:let follow_users = user.follows.map(follow => follow.user);const posts = await Post.find({ author: { $in: follow_users } })    .select('-comments')    .sort({date: 1})    .populate('author')    .exec();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript