Mongoose Document方法
==Document 对象的方法==
- equals(doc)
- id
- get(path,[type])
- set(path,value,[type])
- update(update,[options],[callback])
- save([callback])
- remove([callback])
- isNew
- isInit(path)
- toJSON()
- toObject()
1.save([options],[fn])
var mongoose=require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); //数据库打开的监听事件 mongoose.connection.once("open",function(){ console.log("数据库连接成功~~~"); }); //数据库关闭的监听事件 mongoose.connection.once("close",function(){ console.log("数据库已断开~~~"); }); //创建Schema 对象 var Schema =mongoose.Schema; var stuSchema=new Schema({ name:String, age:Number, gender:{//数据类型是String,默认值是 female type:String, default:"female" }, address:String }); /** * 有了Model(集合),我们就可以来对数据库进行增删改查的操作了 */ var StuModel =mongoose.model("students",stuSchema); /** * Document 和集合中的文档--对应,Document是Model的实例 * 通过Model查询到结果都是Document */ //创建一个新的Document var stu=new StuModel({ name:"奔波霸", age:48, gender:"male", address:"碧波谭" }); /** * Document 的方法 * Model#save([options],[fn]); */ stu.save(function(err){ if(!err){ console.log("保存成功~"); } });
2.修改 updat()
var mongoose=require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); //数据库打开的监听事件 mongoose.connection.once("open",function(){ console.log("数据库连接成功~~~"); }); //数据库关闭的监听事件 mongoose.connection.once("close",function(){ console.log("数据库已断开~~~"); }); //创建Schema 对象 var Schema =mongoose.Schema; var stuSchema=new Schema({ name:String, age:Number, gender:{//数据类型是String,默认值是 female type:String, default:"female" }, address:String }); /** * 有了Model(集合),我们就可以来对数据库进行增删改查的操作了 */ var StuModel =mongoose.model("students",stuSchema); StuModel.findOne({},function(err,doc){ if(!err){ doc.update({$set:{age:500}},function(err){ if(!err){ console.log("修改成功~~"); } }); } })
第二种修改写法
var StuModel =mongoose.model("students",stuSchema); StuModel.findOne({},function(err,doc){ if(!err){ doc.age=1000; doc.save(); } })
3.删除 remove()
StuModel.findOne({},function(err,doc){ if(!err){ doc.remove(function(err){ if(!err){ console.log("删除成功~"); } }); } })
4.获取文档中的指定属性值 get(name)
StuModel.findOne({},function(err,doc){ if(!err){ console.log(doc.get("name")); //有点麻烦
//和 console.log(doc.name);结果一样
} })
5.修改文档指定属性值 set(name,value)
StuModel.findOne({},function(err,doc){ if(!err){ //console.log(doc.get("name")); doc.set("name","沙小小"); console.log(doc); } })
第二种写法
StuModel.findOne({},function(err,doc){ if(!err){ //console.log(doc.get("name")); doc.name=沙小小"; //doc.save(); console.log(doc); } })
6.获取文档的_id属性值
StuModel.findOne({},function(err,doc){ if(!err){ console.log(doc.id); } })
7.将Document对象转换为一个普通的对象 toObject()
转换成普通对象后就不能使用Document的方法和属性了。
StuModel.findOne({},function(err,doc){ if(!err){ //一般用于不想显示一些属性但是不是删除数据库的属性 //只是临时不显示 doc=doc.toObject(); delete doc.address; console.log(doc); } })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!