gpt4 book ai didi

javascript - MongooseJS 没有正确保存数组

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:01 27 4
gpt4 key购买 nike

我想我在使用 mongoosejs 时遇到了麻烦。我试图将一个对象数组保持在特定大小 2。调用此函数时,它会向数组添加一个项目,并在必要时将其缩小。但是,当我保存数组时,大小不会缩减为 2。按照代码和注释进行操作。感谢您提供的任何帮助。

 user.location.push(req.body);  //Add a new object to the array.

if(user.location.length > 2) //If the array is larger than 2
user.location.splice(0,1); //Remove the first item

console.log(user.location); //This outputs exactly what I would expect.

user.save(function(err, updatedUser){
if(err)
next(new Error('Could not save the updated user.'));
else {
res.send(updatedUser); //This outputs the array as if it was never spliced with a size greater than 2.
}
});

最佳答案

因为您在模式中定义了 location: [],Mongoose 将该字段视为 Mixed,这意味着您必须在更改时通知 Mongoose。请参阅文档 here .

将更新 user.location 的代码更改为:

if(user.location.length > 2) {
user.location.splice(0,1);
user.markModified('location');
}

关于javascript - MongooseJS 没有正确保存数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350573/

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