当前位置: 首页 > 后端技术 > Node.js

mongoose链接数据库,增删改查

时间:2023-04-03 16:28:50 Node.js

根据个人编码习惯,仅供参考。如果中间有点迷糊,可以去官网查看导入模块varmongoose=require("mongoose");连接到数据库mongoose.connect("mongodb://localhost/mongoose_test");连接状态mongoose.connection.once("open",function(){console.log("数据库连接成功");});为了检查连接是否成功,回调创建一个Schema(模式)对象示例:varSchema=mongoose.Schema;//将mongoose.Schema赋值给变量//创建Schema对象varstuSchema=newSchema({name:String,age:Number,gender:{type:String,default:"female"},address:String});官网:CreateaModelthroughaSchemacreateaModelModel代表数据库中的一个集合。只有通过Model才能对数据库进行操作。可以在官网查看语法:mongoose.model(modelName,schema);参数:modelName:待映射的集合名称特性:mongoose:会自动将集合名称设为复数示例:varStuModel=mongoose.model('student',stuSchema);Add(insertdocumentsintothedatabase)语法:Model.create(doc(s),[callback]);//用于创建一个文档并添加到数据库中参数:dec(s)可以是一个文档对象,也可以是一个文档对象数组[回调]可选回调函数示例:StuModel.create({name:"BoneEssence",age:16,address:"BoneCave"},function(err){if(!err){console.log("插入成功");}});查询语法:Model.find(conditions,[projection],[options],[callback]);//查询所有符合条件的文档总会返回一个数组Model.findById(id,[projection],[options],[callback]);//根据文档的id属性查询文档Model.findOne([conditions],[projection],[options],[callback]);//查询第一个满足条件的文档,总是返回一个具体的文档对象参数:conditionsqueryconditionprojectionprojection(需要获取的字段)第一个方法{name:1,_id:0}第二个方法"name-_id"options查询options(skiplimit)callback回调函数查询结果通过回调函数返回如果没有回调函数必须传回调函数passedatall查询示例:StuModel.find({name:"唐僧"},function(err,docs){if(!err){console.log(docs[0].name);}});StuModel.find({},{name:1,_id:0},function(err,docs){if(!err){console.log(docs);}});StuModel.findById("5bac79be5fb5454418668515",function(err,doc){if(!err){//find()查询结果返回的对象是Document文档对象//Document对象是Model的实例console.log(docinstanceofStuModel)}});修改语法:Model.update(conditions,doc,[options],[callback]);//用于修改一个或多个文档Model.updateMany(conditions,doc,[options],[callback]);//用于修改多个文档Model.updateOne(conditions,doc,[options],[callback]);//用于修改一个文档Model.replaceOne(conditions,doc,[options],[callback]);//替换一个参数:conditions查询条件doc修改对象options配置参数回调函数delete语法:Model.remove(conditions,[callback]);//删除一个或多个Model.deleteOne(conditions,[callback]);//删除一个Model.deleteMany(conditions,[callback]);//删除多个examples:StuModel.remove({name:"骨精"},function(err){if(!err){console.log("删除成功");}})统计文件个数语法:Model.count(conditions,[callback])例子:StuModel.count({},function(错误,计数){如果(!错误){console.log(计数);}});Document方法Document与集合中的文档一一对应。Document是Model的一个实例,通过Model查询的结果是创建一个DocumentDocumentvarstu=newStuModel({name:"苏小小",age:22,gender:"male",address:"Shanghai"});Document方法语法:Model#save([options],[fn]);例子:stu.save(function(err){if(!err){console.log("savedsuccessful")}});修改、删除语法:修改对象:update(update,[options],[callback]);删除对象:remove([callback]);示例:StuModel.findOne({},function(err,doc){if(!err){/***update(update,[options],[callback])*-修改对象*remove([callback])*-删除对象*///console.log(doc);//doc.update({$set:{age:28}},function(err){//if(!err){//console.log("修改成功");//}//})/***或*///doc.age=18;//文档保存();//doc.remove(function(err){//if(!err){//console.log("再见,大哥");//}//})/***get()*-get文档指定属性值*set(name,value)*-设置文档的指定属性值*id*-获取文档的_id属性值*toJSON()*-转换为json对象*toObject()*-转换Document对象是一个普通的js对象,注意不能使用Document对象的所有方法或属性*///console.log(doc.get("name"))/***or*///console.log(doc.name)//doc.set("name","猪无能");/***或者*///doc.name="MarshalCanopy";//console.log(doc._id);//varj=doc.toJSON();//console.log(typeofj);varo=doc.toObject()console.log(o)}});模块化新建一个js文件连接数据库/***定义一个模块连接mongodb数据库*/varmongoose=require("mongoose");mongoose.connect("mongodb://localhost/mongoose_test");mongoose.connection.once("open",function(){console.log("数据库连接成功");});--------------------------------------------------------------新建js文件创建学生模型/***用于定义学生模型*/varmongoose=require("mongoose");varSchema=mongoose.Schema;varstuSchema=newSchema({name:String,age:Number,gender:{type:String,default:"female"},address:String});/***定义模型*/varStuModel=mongoose.model('student',stuSchema);/***暴露*/module.exports=StuModel;----------------------------------------------------------------需要调用的地方导入就可以/***定义一个模块,使用连接到mongodb数据库*/varmongoose=require("mongoose");mongoose.connect("mongodb://localhost/mongoose_test");mongoose.connection.once("open",function(){console.log("数据库连接成功");});

猜你喜欢