如何使用Mongoose从数据库填充到不同的字段?

如何使用Mongoose从数据库填充到不同的字段?,mongoose,Mongoose,我正在使用mongoose,有时我需要填充链接文档。问题是,当我填充文档id字段时,它会用文档填充文档id字段(listingID),如果以后我尝试使用该文档id字段,可能会导致问题。我想出了一个解决方法,将保存在文档id字段中的文档保存到另一个字段(列表),然后将该文档的id保存回文档id字段。请参见下面的示例 我的问题是,有没有更好的办法?猫鼬已经有办法做到这一点了,我不知道吗?如果没有,是否有办法将这样的函数添加到模式中,这样我就不必每次使用populate() 请参阅我的示例代码 (

我正在使用mongoose,有时我需要填充链接文档。问题是,当我填充文档id字段时,它会用文档填充文档id字段(
listingID
),如果以后我尝试使用该文档id字段,可能会导致问题。我想出了一个解决方法,将保存在文档id字段中的文档保存到另一个字段(
列表
),然后将该文档的id保存回文档id字段。请参见下面的示例

我的问题是,有没有更好的办法?猫鼬已经有办法做到这一点了,我不知道吗?如果没有,是否有办法将这样的函数添加到模式中,这样我就不必每次使用
populate()

请参阅我的示例代码


(请求、回复)=>{
常量错误={};
Profile.findOne({user:req.user.id})
.populate('user'、['name'、'avatar'))
。然后(配置文件=>{
如果(!配置文件){
errors.noprofile='没有此用户的配置文件';
返回res.status(404.json)(错误);
}
res.json(profile);
})
.catch(err=>res.status(404.json(err));
}
请参阅我的示例代码


(请求、回复)=>{
常量错误={};
Profile.findOne({user:req.user.id})
.populate('user'、['name'、'avatar'))
。然后(配置文件=>{
如果(!配置文件){
errors.noprofile='没有此用户的配置文件';
返回res.status(404.json)(错误);
}
res.json(profile);
})
.catch(err=>res.status(404.json(err));
}
let reservations = await Reservation.find({})
    .populate("listingID")
    .lean();
reservations = reservations.map(reservation => {
    reservation.listing = reservation.listingID;
    reservation.listingID = reservation.listing._id;
    return reservation;
});