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);
    }
})
复制代码

 

posted @   创客未来  阅读(246)  评论(0编辑  收藏  举报
编辑推荐:
· 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框架的用法!
点击右上角即可分享
微信分享提示