[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-05-09vue3开发前端表单缓存自定义指令,移动端h5必备插件
- 2024-05-09React Hooks在class组件中的使用方式
- 2024-03-30[OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- 2024-03-29terraform jsonencode
- 2024-03-13vuex-persist
- 2024-03-11icons for vue
- 2024-03-07breadcrumbs react js
- 2024-03-06react login page example
- 2024-03-06react router uselocation
- 2024-03-04postgres jsonb_set