码迷,mamicode.com
首页 > 其他好文 > 详细

Mongoose Model的方法

时间:2021-01-30 12:22:30      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:mode   方式   操作   文档   creat   string   end   done   函数返回   

 

1.添加方法 create(doc(s),[callback])

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);

/**
 * Model.create(doc(s),[callback])
 * 用来创建一个或多个文档并添加到数据库中
 * 参数:
 *    doc(s) 可以是一个文档对象,也可以是一个文档的数组
 *    callback 当操作完成以后调用的回调函数 ,回调函数可以省略不写
 */
StuModel.create([
    {
        name:"猪八戒",
        age:28,
        gender:"male",
        address:"高老庄"
    },{
        name:"唐僧",
        age:16,
        gender:"male",
        address:"女儿国"
    }
],function(err){
    if(!err){
        console.log("插入成功!");
    }
});

2.查询方法

/**
 * 查询所有符号条件的文档
 * Model.find(conditions,[projection],[options],[callback])
 * 根据文档的id属性查询文档
 * Model.findById(id,[projection],[options],[callback])
 * 查询符合条件的第一个文档
 * Model.findOne([conditions],[projection],[options],[callback])
 * 
 * conditions 查询的条件
 * projection 投影
 * options 查询选项(skip limit)
 * callback 回调函数,查询结果会通过回调函数返回
 *          回调函数必须传,如果不传回调函数,压根不会查询
 */
StuModel.find({name:"唐僧"},function(err,docs){
    if(!err){
        console.log(docs);
    }
});

技术图片

 

 

  •  投影(投影有两种方式)
//投影
StuModel.find({},{name:1,_id:0},function(err,docs){
    if(!err){
        console.log(docs);
    }
});

技术图片

 

 

 投影也可以这样写(-_id表示不显示):

StuModel.find({},"name age -_id",function(err,docs){
    if(!err){
        console.log(docs);
    }
});

技术图片

 

 

  •  跳过 skip

    //跳过
    StuModel.find({},"name age -_id",{skip:3},function(err,docs){
        if(!err){
            console.log(docs);
        }
    });

    技术图片

  • 显示数量 limit

    //跳过
    StuModel.find({},"name age -_id",{skip:2,limit:1},function(err,docs){
        if(!err){
            console.log(docs);
        }
    });

    技术图片

  • 查询一个文档 findOne()
    //查询一个
    StuModel.findOne({name:"孙悟空"},function(err,doc){
        if(!err){
            console.log(doc);
        }
    });

    技术图片

  • 通过Id查询一个文档 findById()
    //通过Id查询一个文档
    StuModel.findById("6014aa020e3c7334146e06a6",function(err,doc){
        if(!err){
            console.log(doc);
        }
    });

    技术图片

注意:通过find()查询的结果,返回的对象,就是Document,文档对象

          Document对象是Model的实例

          比如:doc就是StuModel的对象。

//检查是否是实例
console.log(doc instanceof StuModel);

3.修改

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);


/**
 *  用来修改一个或多个文档
 * Model.update(conditions,doc,[options],[callback])
 * 用来修改一个文档
 * Model.update(conditions,doc,[options],[callback])
 * 用来修改多个文档
 * Model.update(conditions,doc,[options],[callback])
 * 
 *  参数:
 *      conditions 查询条件
 *      doc 修改后的对象
 *      options 配置参数
 *      callback 回调函数
 */

 StuModel.updateOne({name:"孙悟空"},{$set:{age:100}},function(err){
    if(!err){
        console.log("修改成功~");
    }
 });

技术图片

 

技术图片

 

 4.删除(一般不会用,实际开发中或设计逻辑删除字段)

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);


/** 
 * 删除一个或多个文档
 * Model.remove(conditions,[callback])
 * 删除一个文档
 * Model.deleteOne(conditions,[callback])
 * 删除多个文档
 * Model.deleteMany(conditions,[callback])
*/
//1.查看
StuModel.findOne({name:"猪八戒"},function(err,doc){
    if(!err){
        console.log(doc);
    }
})
//2.删除
StuModel.remove({name:"猪八戒"},function(err){
    if(!err){
        console.log("删除成功~");
    }
});
//3.在查看
StuModel.findOne({name:"猪八戒"},function(err,doc){
    if(!err){
        console.log(doc);
    }
})

技术图片

 

 5.统计文档数量

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);


/**
 * 统计符合查询条件的文档的数量
 * Model.count(conditions,[callback])
 */
StuModel.count({},function(err,count){
    if(!err){
        console.log(count);
    }
});

技术图片

 

Mongoose Model的方法

标签:mode   方式   操作   文档   creat   string   end   done   函数返回   

原文地址:https://www.cnblogs.com/ckfuture/p/14348168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!