概念Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能。mongoose的优势在于:可以为文档创建一个模式结构(Schema)。可以对模型中的对象/文档进行验证。数据可以通过类型转换转换为对象模型。可以使用中间件来应用业务逻辑挂钩。比Node原生的MongoDB驱动更容易。Mongoos的几个对象概念:Schema(模式对象):Schema对象定义约束了数据库中的文档结构Model:Model对象作为集合中的所有文档的表示,相当于MongoDB数据库中的集合collectionDocument: Document表示集合中的具体文档mongoose安装npm i mongoose –save关于npm install、npm install –save的区别来自于https://blog.csdn.net/qq_3037…mongoose基本操作引入mongooselet mongoose = require(“mongoose”);连接数据库mongoose.connect(‘mongodb://user:pwd@ip:27017/database’);事件监听let db = mongoose.connection;db.on(’error’,()=>{ console.log(‘连接失败’);});db.once(‘open’,()=>{ console.log(‘连接成功’);});db.once(‘close’,()=>{ console.log(‘断开连接’);});schema和modellet Schema = mongoose.Schema;let personSchema = new Schema({ name:String, age:Number, sex:{ type:String, default:“F” }});关于schema的学习来自于:关于数据库schema:https://www.cnblogs.com/csnip…关于mongoose的schema:https://www.jianshu.com/p/9ff…let personModel = mongoose.model(“persion”,personSchema);crud操作因为我在启动mongodb时加了 –auth参数,插入操作是需要验证用户权限。db.createUser({ user: “test01”, pwd: “test01”, roles: [{ role: “readWrite”, db: “test” }] })//插入操作/personModel.create({ name:“t01”, age:22},(err)=>{ if(!err){ console.log(“插入成功”); }else{ throw err; }});///修改操作//update报错: DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead.,改成updateOne/personModel.updateOne({_id:“5c2d7c0bda87713ff850c6ea”},{$set:{name:“t02”}},(err)=>{ if(err){ throw err; }});//personModel.updateOne({_id:“5c2d7af402a3462c7c212b58”},{$set:{name:“t01”}},(err)=>{ if(err){ throw err; }});///查找/personModel.find({},(err,docs)=>{ if(!err){ console.log(docs); }else{ throw err; }});//personModel.find({name:“t01”},(err,docs)=>{ if(!err){ console.log(docs); }else{ throw err; }});//personModel.find({},“name age _id”,{skip:1,limit:2},(err,docs)=>{ if(!err){ console.log(docs); }else{ throw err; }});///删除/personModel.remove({name:“t03”},(err)=>{ if(!err){ console.log(“删除成功”); }});/