mongoose使用教程

    xiaoxiao2022-07-06  206

    提示:mongodb 的服务启动

    1. mongoose 连接数据库

    npm install mongoose

    代码示例: const mongoose = require('mongoose') ;(function(){ //链接数据库并使用新的url解析器(useNewUrlParser); mongoose.connect('mongodb://localhost:27017/test',{useNewUrlParser:true}) // 下面代码相当于操作图形界面把一个创建好的数据库(test)打开连接 mongoose.connection.once('open',(err)=>{ //绑定一个 ‘打开’ 事件 if(!err){ console.log('数据库连接成功') }else{ console.log('数据库连接失败'+ err) } }) })() 链接数据库是一个异步的方法,最好封装成 Promise 对象暴露出去 const mongoose = require('mongoose') module.exports = new Promise((resolve,reject)=>{ mongoose.connect('mongodb://localhost:27017/test',{useNewUrlParser:true}) mongoose.connection.once('open',(err)=>{ if(!err){ console.log('数据库连接成功') resolve() }else{ reject('数据库连接失败'+ err) } }) })

    2. 创建约束对象 Schema

    new Schema({ }) //对象里面约束规则

    常用允许的模式类型(type):

    type类型String字符串Number数字Date时间格式Buffer二进制缓冲区Boolean布尔Mixed混合值ObjectId对象Array数组Decimal小数Map经纬度格式

    Mixed : 混合类型,顾名思义,就是说里面可以放置任意类型的数据

    Schema Type模式选项分类:

    所有模式类型选项:

    required : 布尔或函数,如果真正的添加一个[需要验证器]为这个属性 default : 任何或函数,设置一个默认值的路径。如果该值是一个函数,函数的返回值作为默认值。 select : 布尔,指定默认值[预测]查询 alidate : 添加一个函数[验证器函数]为这个属性 get : 函数,定义了该属性使用一个定制的getter set : 函数,定义了该属性使用一个定制的setter alias : 字符串,mongoose> = 4.10.0。定义了一个[virtual]的名字拿到/设置这个path。

    索引模式选项:

    index : 布尔,是否要定义一个[指数]在这个属性。 unique : 布尔,是否要定义一个[唯一索引]在这个属性。 sparse : 布尔,是否要定义一个[稀疏索引]在这个属性。

    字符串模式选项:

    lowercase : 布尔,是否总是为这个值调用.toLowerCase()方法 uppercase : 布尔,是否总是为这个值调用.toUpperCase()方法 trim : 布尔,是否总是为这个值调用.trim()方法 match : 创建一个正则表达式[验证器]检查如果匹配给定的正则表达式的值 enum : 创建一个数组[验证器]检查值是否在给定的数组。 minlength : Number类型,创建一个[验证器]检查值长度是不是少于给定的数字 maxlength : Number类型,创建一个[验证器]检查值长度不大于给定的数字

    数量模式选项 :

    min:Number类型,创建一个[验证器]检查如果该值大于或等于给定的最小值。 max:Number类型,创建一个[验证器]检查值是否小于或等于给定的最大值。

    日期模式选项 :

    min:Date类型 max:Date类型

    Schema 模板初始化示例( 假设创建此文件为 Theaters.js ): const mongoose = require('mongoose') const Schema = mongoose.Schema const TheaterSchema = new Schema({ title: String, rating: Number, runtime: String, directors: String, casts: String, image:String, genre: [String], summary:String, posterKey : String, createTime : { type : Date, default:Date.now() } }) //创建模型对象 const Theaters = mongoose.model('Theaters',TheaterSchema)//分别是模型对象名称和约束对象 module.exports = Theaters Schema 使用模板代码示例:

    使用数据库数据,填充数据

    const Theaters = require('./Theaters.js') module.exports = async (data) =>{ for(let i = 0; i<data.length; i++){ let item = data[i] await Theaters.create({ title: item.title, rating: item.rating, runtime: item.runtime, directors: item.directors, casts: item.casts, image:item.image, genre: item.genre, summary:item.summary, }) console.log('数据保存成功') } }
    最新回复(0)