Я хочу обновить статус с "available"
до "not Available"
, где hostelId - 5e7f5e42a1e1f215b419f1ff
, roomNum
- 101, а bedNum
- 2. Поэтому я должен отфильтровать его, используя эти три условия.
Я использую Node.js для этого.
Это моя структура документа:
{
"roomList": {
"hostelId": "5e7f5e42a1e1f215b419f1ff",
"roomDetails": [{
"roomNum": "101",
"beds": 5,
"room": [{
"bedNum": 1,
"status": "available"
}, {
"bedNum": 2,
"status": "available"
}]
}, {
"roomNum": "301",
"beds": 3,
"room": [{
"bedNum": 1,
"status": "available"
}]
}, {
"roomNum": "401",
"beds": 2,
"room": [{
"bedNum": 1,
"status": "available"
}, {
"bedNum": 2,
"status": "available"
}]
}]
}
}
Я использовал этот запрос, но он не обновляется
const id = req.params.id;
const roomNum = req.body.roomNum;
const bedNum = req.body.bedNum;
const status = req.body.status;
ManageRooms.findOneAndUpdate(
{"roomList.hostelId": id,
"roomList.roomDetails":{$elemMatch: {"roomNum": roomNum}},
"roomList.roomDetails.$.room":{$elemMatch: {"bedNum": bedNum}}},
{"$set": {"room.status": status}},
{new: true})