如何获取我在猫鼬中填充得到的数组字段的第一项?

How to get the first item of an array field I get with populate in mongoose?

我有一个 mongodb 集合,当我 return 来自数据库的数据时,我想填充一个嵌套字段。我只想 return 特定字段,下面的代码有更多解释。

this is my schema

const hallSchema = new Schema({
  hallName: { type: String, required: true },
  email: { type: String, required: true },
  images: [{ type: String, required: true }],
});

and this is code I'm writing to get the first image of the images array 

chatRooms = await ChatRoom.find({ _id: convertedIds })
      .populate("hallId", `hallName ${images[0]}`);

上面的查询失败,因为它无效, 我怎样才能得到图像数组的第一项? 感谢您的帮助

我的理解是,您想在 hallId 中填充数据,并从填充的 hallId 数据中填充图像数组中的第一个图像 select。因此,要从填充的数据中投影字段,您可以这样做, 它对我有用,

const chatRooms = await ChatRoom.find({ _id: convertedIds })
    .populate({ path: 'hallId', select: {
        hallName: 1,
        images: { $slice: ['$images', 1] },
    }
});