express - Mongoose,findByIdAndUpdate,更新除一个之外的所有?
问题描述
我不明白,但是当创建用户时,日期是指创建帐户的日期。但是当用户更新他们的信息时,“日期”也会更新。我究竟做错了什么?
我的模型:
var userinfoSchema = new mongoose.Schema({
type_ : String,
firstname : String,
surname : String,
organization : String,
name : String,
person_role : String,
members_num : Number,
address : String,
postal_code : String,
city : String,
country : String,
tel : String,
date: { type: Date, default: Date.now }
});
var UserSchema = new mongoose.Schema({
username: String,
password: String,
userinfo: [userinfoSchema]
});
还有我的应用功能:
app.put("/Edit/:id", function(req,res) {
User.findByIdAndUpdate(req.params.id, {$set: { userinfo: req.body.userinfo}},
function(err, updated) {
if(err) {
res.redirect('/Edit');
} else {
console.log(updated);
res.redirect('/Profil');
}
});
});
解决方案
这是我认为最好的答案,搜索了一个星期后......
从 Mongoose 4.0 开始,您现在可以在 Schema 上设置时间戳选项,让 Mongoose 为我们处理这个问题:
var thingSchema = new Schema({..}, { timestamps: true });
所以在这种情况下:模型应该是这样的:
var userinfoSchema = new mongoose.Schema({
type_ : String,
firstname : String,
surname : String,
organization : String,
name : String,
person_role : String,
members_num : Number,
address : String,
postal_code : String,
city : String,
country : String,
tel : String,
});
var UserSchema = new mongoose.Schema({
username: String,
password: String,
userinfo: [userinfoSchema]
}, { timestamps: true });
就像,我们可以看到 : date: { type: Date, default: Date.now } 不是一个好的选择。
时间戳创建两个字段:“createdAt”和“updatedAt”,如下图所示:createdAt 永远不会改变,updatedAt 将在用户更新他们的数据时改变
注意:我们也可以通过“日期”或类似这样的方式更改“createdAt”:
var UserSchema = new mongoose.Schema({
username: String,
password: String,
userinfo: [userinfoSchema]
}, { createdAt: 'date', updatedAt: 'update_date' });
推荐阅读
- javascript - json数组迭代并从json数组中创建自己的数组列表
- blazor - BlazorStrap BSInput 控件在 Photino 中不起作用
- swiftui - 尝试获取 Google Places Pictures SwiftUI
- go - 如何使用具有表中另一个结构的结构预加载gorm?
- reactjs - 从 react 15 迁移到 16 以及依赖项
- microsoft-graph-api - microsoft graph api Outlook 分别发送多封电子邮件
- html - 需要帮助在我的文本右侧定位图标
- flutter - NoSuchMethodError:在 null 上调用了方法“doLogin”
- neural-network - 解释卷积神经网络架构中的全连接层
- node.js - 开玩笑模拟解构的导入/要求