🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **1、mongoose 介绍** Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose 是 NodeJS 的驱动,不能作为其他语言的驱动。 1. 通过关系型数据库的思想来设计非关系型数据库 2. 基于 mongodb 驱动,简化操作 ## **2、mongoose 的安装以及使用** 官网:https://mongoosejs.com/ #### 1. 安装 `npm i mongoose --save ` #### 2、引入 mongoose 并连接数据库 ``` const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); 如果有账户密码需要采用下面的连接方式: mongoose.connect('mongodb://eggadmin:123456@localhost:27017/eggcms'); ``` #### 3、定义 Schema 数据库中的 Schema,为数据库对象的集合。schema 是 mongoose 里会用到的一种数据模式, 可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备 操作数据库的能力 ``` var UserSchema=mongoose.Schema({ name: String, age:Number, status:'number' }) ``` #### 4、创建数据模型 定义好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以对数据库的 操作。 **注意**:mongoose.model 里面可以传入两个参数也可以传入三个参数 mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称) **如果传入 2 个参数的话**:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。 **如果传入 3 个参数的话**:模型默认操作第三个参数定义的集合名称 ``` var User=mongoose.model('User', UserSchema); ``` #### 5、查找数据 ``` User.find({},function(err,docs){ if(err){ console.log(err); return; } console.log(docs); }) ``` #### 6、增加数据 ``` var u=new User({ //实例化模型 传入增加的数据 name:'lisi2222333', age:20, status:true }) u.save(); ``` #### 7、修改数据 ``` User.updateOne( { name: 'lisi2222' }, { name: '哈哈哈' }, function(err, res) { if(err){ console.log(err); return; } console.log('成功') } ); ``` #### 8、删除数据 ``` User.deleteOne({ _id: '5b72ada84e284f0acc8d318a' }, function (err) { if (err) { console.log(err); return; } // deleted at most one tank document console.log('成功'); }); ``` #### 9、保存成功查找 ``` var u=new User({ name:'lisi2222333', age:20, status:true //类型转换 }) u.save(function(err,docs){ if(err){ console.log(err); return; } // console.log(docs); User.find({},function(err,docs){ if(err){ console.log(err); return; } console.log(docs); }) }); ``` ## **三、mongoose 模块化** 看教程演示