gpt4 book ai didi

javascript - 更新酒店房间预订数组 - Mongoose

转载 作者:行者123 更新时间:2023-12-04 15:00:57 25 4
gpt4 key购买 nike

我正在开发酒店客房预订系统。以下是 Room 模型中的属性。

rId: String,
allocation: [{
date: Number, // 210403 == 2021-04-03
slots: [{
type: mongoose.Schema.Types.Mixed,
ref: 'reservation',
maxItems: 48
}]
}],
_active: Boolean

这个“时隙”是一个包含 48 个项目(30 分钟时隙)的数组。这里我想用用户输入更新这个数组。例如,如果用户想保留 2.30 - 3.30 之间的时间,我想更新它阵列中的两个插槽“保留”。以下代码是预订的 Controller

reservation
.save(reservation) //Save reservation data
.then((data) => { // Update room slots
var dt = req.body.checkInDate.substr(0, 10); // extract date from user input
var tm = req.body.checkInDate.substr(11, 5); // extract time
dt = dt.replace(/-/g, ''); // 210403 == 2021-04-03
tm = tm.replace(/:/g, '.');
console.log(tm)
console.log(dt)
Room.findOneAndUpdate({ rId: rId }, { //Update time slot
$push: {
allocation: [{
date: dt,
slots: [{ tm }]
}]
}
})

以上代码无效。有人可以帮我解决这个问题吗?

最佳答案

演示 - https://mongoplayground.net/p/bn1lJpZzhUT

https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/

db.collection.update(
{ rId: 1, "allocation.date": 20190701 },
{ $push: { "allocation.$[a].slots": { a: 1, b: 2 } } },
{ arrayFilters: [ { "a.date": 20190701 } ]}
)

关于javascript - 更新酒店房间预订数组 - Mongoose ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66948141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com