我正在尝试从mongoose findone函数的结果中删除一些json对象
但不工作
我的代码
export const transferGuest = async (req, res, next) => {
var guest = await Booking.findOne({"roomNumber": req.body.roomNumber, booked: true}).sort({createdAt: -1})
try{
const newBooking = new Booking(guest)
delete guest._id;
return res.status(200).json(guest)
}catch(error){
next(error)
}
}
但删除guest._id不起作用。
如何更正此问题?
2条答案
按热度按时间cbwuti441#
findOne()
方法返回单个文档对象,因此不需要调用sort()
。如果我很好地理解了您的问题,您希望从查询结果中删除_id
属性。如果是这种情况,那么您应该尝试以下操作:请注意,您没有使用
newBooking
变量,如果您不打算使用它,则应将其删除。wnavrhmk2#
你不能先对mongoose对象应用delete功能,你需要在普通对象中进行更改,然后才能对它应用delete功能。
要转换为普通对象,您可以在mongoose查询中使用**lean()**mongoose函数
参考Change mongoose object into plain object
试试这个:-