今天我们就来说一下四种较为简单的Node后端API,增删改查。
一、mongoose
上一篇文章我们提到了一个知识点mongoose,是一个模块 : 感兴趣的兄弟可以看一下一下官网 Mongoose ODM v8.1.1https://mongoosejs.com/express服务器下操作mongodb的模块有两个 : mongodb(原始) mongoose
为什么要使用mongoose?
首先mongoose可以为文档创建一个模式结构Schema
可以对模型中的对象/文档进行验证
数据可以通过类型转换 转换为对象模型
比Node原生的MongoDB驱动更容易
mysql mongodb:
表-------集合
行———文档
列-------字段
mongoose模块的使用方法如下:
1-下载 npm i mongoose
2-导入mongoose模块 require()
3-测试连接数据库模块
什么是Schema?
mongoose提供了三种新的对象
Schema(模式对象)
Schema对象定义约束了数据库中的文档结构
Model
Model对象作为集合中的所有文档的表示,相当于MongoDB数据库中的集合collection
Document
Document表示集合中的具体文档,相当于集合中的一个具体的文档
这三个的创建是由先后顺序的:
先创建 Schema
再有 Model
最后有Document
mongodb数据库 一般只需要连接一次 当项目关闭,服务器停止,才会断开的
使用mongoose创建表(将表映射到数据库)的具体步骤:
第一步 : 导入封装的连接数据库方法 db.js
const mongoose = require("./db")
第二步 :将mongoose.Schema赋值给一个变量 也就是创建一个Schema类
let Schema = mongoose.Schema;
第三步 : 创建Schema(模式)对象
注意这里字段可以指定数据类型 或 默认值 或 唯一性等 字段的值就是一个对象,对象中指定字段的属性
字段的数据类型 : String Number Date 等等
{
type:类型
default : 默认值
unique : 唯一性 true 表示唯一
}
例如 :
let stuSchema = new Schema({
name : String,
age : Number,
sex : {
type : String,
default : "女"
},
addr : String
})
mongoose 的所有合法 SchemaTypes:
String
Number
Date
Buffer
Boolean
Mixed
ObjectId
Array
Decimal128
mongoose数据校验 :
required: 表示这个数据必须传入
max: 用于 Number 类型数据,最大值
min: 用于 Number 类型数据,最小值
default : 默认值
match:增加的数据必须符合 match(正则)的规则
maxlength:String最大长度
minlength:String 最小长度
第四步 : 通过Schema来创建Model
Model代表的是数据库中的集合 ,通过Model才能对数据库进行操作
mongoose.model(modelName,schema,实际的表名modelNames)
modelName 就是要映射的集合名 mongoose会自动将集合变成复数
第三个参数是实际的表名 可以省略 会自动生成第一个参数的复数形式
let StuModel = mongoose.model("student",stuSchema)
第五步 : 运行该文件 会在数据库中创建一个students的一个集合
上代码!!
最后将userModel暴露就行。
二、增删改查接口
添加方法
Model.create(docs)
-用来创建一个或多个文档并添加到数据库中
参数
docs 可以是一个文档对象,也可以是一个文档对象的数组
查询方法
Model.find(条件,[投影],查询选项,function(err,docs){}) 查询所有符合条件的文档 返回值是一个数组
投影表示 需要获取的字段, 查询确定的列 两种方式{name:1,age:1,_id:0} 或者 "name age -_id"
第三个参数 查询的其它选项,一般用于分页查询 {skip:3,limit:1}
Model.findById(id,同上) 根据文档的id属性查询文档
Model.findOne(同上) 查询符合条件的第一个文档
总结参数
第一个参数:查询条件 {}
第二个参数:投影 {} 查询指定列
第三个参数:查询选项 skip limit {}
第四个参数 :必选参数 回调函数 ,查询结果会通过回调函数返回 ,没有这个参数,就获取不到查询的结果
注意:
通过find查询的结果,返回的对象,就是Document文档对象
Document文档对象是Model的实例 console.log( doc instanceof StuModel )
修改
Model.updateMany(修改条件,修改后的对象,回调函数 )
Model.updateOne(同上) 用来修改一个或多个文档
删除 remove()
Model.remove(条件,回调) 根据条件删除
Model.deleteOne(条件,回调) 删除一条
Model.deleteMany(条件,回调) 删除多条
以上就是简单的增删改查接口
希望本篇文章可以帮助到大家,有什么问题可以在评论区说出来,感谢观看!!!