【发布时间】:2022-01-04 22:53:02
【问题描述】:
我在我的程序中使用 MERN 堆栈和 mongoose 来访问数据库。我有一个名为 Movies 的集合,我想在这个集合中的一个数组中编辑多个对象。这是电影模式包含在我的数据库中的内容:
我想编辑 seats 内二维数组中的多个对象,并将 isReserved 更改为 True。
我只是使用 findOne 访问数据,因为我仍然不知道如何更新我想要访问的对象。
app.post('/confirm/:movieId/:timeId', (req, res) => {
const movieId = req.params.movieId;
const timeId = req.params.timeId;
const selectedSeats = req.body;
// console.log("in confirm DB ");
// console.log(selectedSeats);
let getSeats;
let getTimeSlots;
const length_timeId = timeId.length;
Movies.findOne({ movieId }, (err, movie) => {
console.log("INSIDE");
getTimeSlots = movie['timeslots'];
let index = timeId.substring(1, length_timeId);
//get the seats
getSeats = getTimeSlots[parseInt(index)-1];
//loop through seats
console.log("PRINTING GET SEATS");
console.log(getSeats);
for(var i=0; i<selectedSeats.length; i++) {
let row = parseInt(selectedSeats[i] / 5);
let id = selectedSeats[i] % 5;
console.log(getSeats["seats"][row][id]);
}
})
})
非常感谢有关如何更新 isReserved 状态的一些提示。谢谢!
【问题讨论】:
-
请不要粘贴截图。对示例输入和输出数据也使用格式化文本,请参阅meta.stackoverflow.com/q/285551/3027266
-
将日期、时间或持续时间存储为 文本 是一个设计缺陷,您永远不应该这样做。始终存储正确的
Date对象,我建议存储秒数(或分钟数,具体取决于您的要求)
标签: javascript mongodb mongoose mongoose-schema mern