6 normalization mongoose mongodb node.js express
我有User一个有username字段的架构.我希望此字段区分大小写,以便用户可以注册名称,例如BobDylan.但是,我需要我的架构来验证新条目,以检查是否没有重复,包括敏感,如bobdylan.
我的研究告诉我,我应该在模式中创建一个额外的字段来存储小写/大写版本,以便我可以轻松地检查它是否是唯一的.我的问题是,如何使用Mongoose API实现这一目标?
我尝试过使用一个set函数,例如:
UserSchema.path('username_lower_case').set(function(username_lower_case) {
return this.username.toLowerCase()
});
Run Code Online (Sandbox Code Playgroud)
但是,此功能似乎没有运行.我基本上需要告诉username_lower_case它是什么username,但是小写.
Pet*_*ons 10
一种方法是使用预保存挂钩来完成它.
UserSchema.pre('save', function (next) {
this.username_lower_case = this.username && this.username.toLowerCase();
next();
});
Run Code Online (Sandbox Code Playgroud)
另一种方法是制作username虚拟:
UserSchema.virtual('username').set(function (value) {
this.username_raw = value;
this.username_lower_case = value && value.toLowerCase();
}).get(function () {
return this.username_raw;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4011 次 |
| 最近记录: |