[Node.js] mongoose schema
2022/8/23 1:52:57
本文主要是介绍[Node.js] mongoose schema,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Example 1:
import mongoose from 'mongoose' const itemSchema = new mongoose.Schema( { name: { type: String, required: true, trim: true, maxlength: 50 }, status: { type: String, required: true, enum: ['active', 'complete', 'pastdue'], default: 'active' }, notes: String, due: Date, createdBy: { type: mongoose.SchemaTypes.ObjectId, ref: 'user', required: true }, list: { type: mongoose.SchemaTypes.ObjectId, ref: 'list', required: true } }, { timestamps: true } ) itemSchema.index({ list: 1, name: 1 }, { unique: true }) export const Item = mongoose.model('item', itemSchema)
Example 2:
import mongoose from 'mongoose' const listSchema = new mongoose.Schema( { name: { type: String, required: true, trim: true, maxlength: 50 }, description: String, createdBy: { type: mongoose.SchemaTypes.ObjectId, ref: 'user', required: true } }, { timestamps: true } ) listSchema.index({ user: 1, name: 1 }, { unique: true }) export const List = mongoose.model('list', listSchema)
Example 3:
import mongoose from 'mongoose' import bcrypt from 'bcrypt' const userSchema = new mongoose.Schema( { email: { type: String, required: true, unique: true, trim: true }, password: { type: String, required: true }, settings: { theme: { type: String, required: true, default: 'dark' }, notifications: { type: Boolean, required: true, default: true }, compactMode: { type: Boolean, required: true, default: false } } }, { timestamps: true } ) userSchema.pre('save', function(next) { if (!this.isModified('password')) { return next() } bcrypt.hash(this.password, 8, (err, hash) => { if (err) { return next(err) } this.password = hash next() }) }) userSchema.methods.checkPassword = function(password) { const passwordHash = this.password return new Promise((resolve, reject) => { bcrypt.compare(password, passwordHash, (err, same) => { if (err) { return reject(err) } resolve(same) }) }) } export const User = mongoose.model('user', userSchema)
这篇关于[Node.js] mongoose schema的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25Vue3学习:从入门到初步掌握
- 2024-12-25Vue3入门:新手必读的简单教程
- 2024-12-23【JS逆向百例】爱疯官网登录逆向分析
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程