node.js连接mongoDB

在node.js中使用mongoDB需要在项目中安装mongoose模块,安装命令:npm install mongoose;对于mongoDB的操作我就不介绍了,大家感兴趣可以看我上篇博客:https://www.jianshu.com/p/dd70199063a4
接下来分享一下node中对mongoDB的操作

连接数据库

当能打印数据库连接成功字符,便是连接成功了

mongoose.connect("mongodb://localhost:27017/users");
var db = mongoose.connection;
db.on("error",function (error) {
    if(error){
        return console.log(error);
    }
});
db.on("open",function () {
    console.log("数据库连接成功");
});

Schema骨架

  • Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
  • Model: 由Schema发布生成的模型,具有抽象属性和数据库操作能力
    每一个 Schema 对应 MongoDB 中的一个集合(collection),Schema 中定义了集合中文档的样式。
    下面设置了集合users的基本样式,type是字段类型
var Schema = mongoose.Schema({
    name:{type:String,default:11},
    age:{type:Number},
    hobby:{hobby1:{type:String},hobby2:{type:String}}
},{collection:'person'});
var Model = db.model("person",Schema);

操作数据库

  1. 查询所有年龄小于30的名字
    参数一:查询条件
    参数二:查询内容
    参数三:对调函数,返回的数据为数组对象形式
Model.find({age:{$lt:30}},{name:1},function (err,data) {
    if(err){
        return console.log(err);
    }else{
        console.log(data);
    }
})

返回的data为数组对象


82BE35246BEAF980CB6B160F2530F877.png

这里支持es6的promise写法

Model.find({age:{$gt:30}},null).then((data) => {
    console.log(data);
}).catch((err)=>{
    return console.log(err);
});
  1. 添加数据
    使用create方法,返回的的data为添加的数据
    添加一条姓名为『周宏伟』,年龄为52的数据
Model.create({name:"周宏伟",age:52},function (err,data) {
    if(err){
        return console.log(err);
    }else{
        console.log(data);
    }
});

注意下图的数据中多一个 __v:0 字段,它代表是由node.js操作添加的数据


A5505778A0B3CEDA885D3C1CC4D5BF96.png
  1. 更新数据
    使用update方法,返回的是更新成功或者失败的状态
Model.update({name:'李刚'},{$set:{age:35}},{multi:true},function (err,data) {
    if(err){
        console.log(err);
    }else{
        console.log(data);
    }
});

ok:参数值为1表示更新成功;0表示更新失败


E6EE8C5091C7B4CB73E50AA0FEE6549D.png
  1. 删除数据
    返回的data与上面update相似
Model.remove({name:'马云'},function (err,data) {
    if(err){
        console.log(err);
    }else {
        console.log(data);
    }
});
  1. 游标操作
    sort参数值:1代表正序;-1代表倒序;
    以年龄倒序排序
Model.find({},{},{sort:{age:-1}},function (err,data) {
    if(err){
        console.log(err);
    }else {
        console.log(data);
    }
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容