[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-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程