Node使用Mongoose操作MongoDB(基础)

Node 中 使用 Mongoose 操作 MongoDB 数据库

1. 引入依赖

const mongoose = require('mongoose');

2. 连接数据库

mongoose.connect('mongodb://localhost/test',{useNewUrlParser:true});

mongoose.set('useFindAndModify',false);

加上mongoose.set('useFindAndModify',false);不然后面的 findByIdAndUpdate 会给报错,问的话 可以看这里

3. 获取连接状态

mongoose中基本上所有的异步操作都支持Promise所以可以不使用回调函数的形式

let conn = mongoose.connection;
conn.on('error',(error) => {
  //如果连接出现错误,可能需要将连接数据库操作中的 localhost 改成  127.0.0.1
  console.log(error);
}).once('open',() => {
  console.log('MongoDB Connected...');
  //这里做连接成功后的事情
})

4. 创建文档结构(Schema)

在连接数据库成功后,我们就可以创建文档结构了,这一步类似于关系数据库中定义表结构,就是设计表

let userSchema = new Schema({
  username:{
    type:String,
    required:true
  },
  password:{
    type:String,
    required:true
  },
  email:{
    type:String,
    validate:{
      validator:(value) => {
        return /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(email);
      },
      message:"邮箱格式有误"
    }
  }
})

上面通过new 来创建一个 Schema实例,数据各字段的约束通过一个对象传入,这种方式类似于 vue 中子组件从父组件获得数据时的操作。
关于各数据字段的中约束选项 可以看这里 约束选项

5. 将定义好的文档结构发布为模型,得到模型构造函数

let User = mongoose.model('User',userSchema);

mongoose.model() 的第一个参数是一个首字母大写的单数形式的单词,mongoose会将这个参数小写复数化作为 集合(表) 的名称 ( users ) ,第二个参数就是上面刚刚创建的 文档模式

6. 使用模板构造函数创建数据模型并保存

let user = new User({
  userName:'Mockingjay',
  password:'wow',
  email:'[email protected]'
});
//将数据保存到数据库中
user.save((err,data)=>{//err:保存出错,data:保存的数据})

7. 通过模型构造函数来对数据进行删改查的操作

//查询构造函数所对应的表的所有数据
User.find((err,data)=>{});
//更新数据
User.findByIdAndUpdate(condition,updateData,(err,data)=>{//err:操作错误信息,data:更新的数据});
//删除数据
User.findByIdAndDelete(id,(err,data)=>{});

其实每一种操作都还对应着许多API 戳这里了解更多

你可能感兴趣的:(Node)