Mongoose限制多个填充字段中的一个

roejwanj  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(146)

Friends是一个以图片为嵌套数组的数组。如何限制查询中返回的图片数?

const foundUser = await User.findOne({ username: username })
      .populate('friends', 'first_name last_name pictures')

编辑:措辞和我目前的解决方案:

let foundUser = await User.findOne({ username: username })
  .populate('friends', 'first_name last_name pictures')
  .lean();
foundUser.friends = foundUser.friends.map(friend => {
  return {
    ...friend,
    pictures: friend.pictures.slice(0, limit),
  };
});

但是,我仍然对一个解决方案感兴趣,它可以处理查询调用中嵌套图片数组的限制。

kcrjzv8t

kcrjzv8t1#

const foundUser = await User.findOne({ username: username })
      .populate('friends', 'first_name last_name pictures')
      .then((res) => {
         let response = res;
         res.friends.map((friend, index)=>{
         response.friends[index].pictures = friend.pictures.slice(0,limit)
      })
         return response
      })

这也许对你有帮助。
如果您还打算使用分页,则可以将slice方法设计为;

response.friends[index].pictures= friend.pictures.slice(((page-1)*limit),limit);

相关问题