概念Mongoose是一个对象文档模型(ODM)库,进一步优化封装了Node原生的MongoDB模块,提供了更多的功能。mongoose的优点是可以为文档创建模式结构(Schema)。可以验证模型中的对象/文档。数据可以通过类型转换转换为对象模型。中间件可用于应用业务逻辑挂钩。比Node的原生MongoDB驱动程序更容易。Mongoos的几个对象概念:Schema(模式对象):Schema对象定义约束数据库中的文档结构。Model:模型对象是集合中所有文档的表示,相当于MongoDB数据库中的collectionDocument:集合中的文档。具体文档mongoose安装npmimongoose--savenpminstall和npminstall--save的区别来自https://blog.csdn.net/qq_3037...mongoose的基本操作介绍mongooseletmongoose=require("mongoose");连接数据库mongoose.connect('mongodb://user:pwd@ip:27017/database');事件监听器letdb=mongoose.connection;db.on('error',()=>{console.log('连接失败');});db.once('打开',()=>{console.log('连接成功');});db.once('关闭',()=>{{console.log('disconnect');});schemaandmodelletSchema=mongoose.Schema;letpersonSchema=newSchema({name:String,age:Number,sex:{type:String,default:"F"}});关于schema的学习来自:关于数据库schema:https://www.cnblogs.com/csnip...关于mongooseschema:https://www.jianshu.com/p/9ff...letpersonModel=mongoose.model("person",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{throwerr;}});*///修改操作//更新报错:DeprecationWarning:collection.update已弃用。改用updateOne,updateMany,orbulkWrite,改成updateOne/*personModel.updateOne({_id:"5c2d7c0bda87713ff850c6ea"},{$set:{name:"t02"}},(err)=>{if(err){throwerr;}});*//*personModel.updateOne({_id:"5c2d7af402a3462c7c212b58"},{$set:{name:"t01"}},(err)=>{if(err){throwerr;}});*///查找/*personModel.find({},(err,docs)=>{if(!err){console.log(docs);}else{throwerr;}});*//*personModel.find({name:"t01"},(err,docs)=>{if(!err){console.log(docs);}else{throwerr;}});*//*personModel.find({},"nameage_id",{skip:1,limit:2},(err,docs)=>{如果(!错误){console.log(文档);}else{抛出错误;}});*///delete/*personModel.remove({name:"t03"},(err)=>{if(!err){console.log("删除成功");}});*/
