Mongoose
最近在学习mongo,发现mongoose这个工具,就来学习一下
介绍
Mongoose是通过Node来操作MongoDB的一个模块
一般,他用来把结构化的模式应用到一个MongoDB集合,并提供了验证和自动类型转换
通过关系型数据库的思想来实现非关系型数据库
-Schema -Model => Mongoose => Mongodb -Document
新名词:
Schema:定义了数据库的文档作用,约束作用
Model:相当于collection
Docuemt:表示集合的具体文档
-
好处
-
为文档创建Schema,也可以说是约束
-
对模型中的对象/文档进行验证,出现错误的数据不会插入
-
数据可以通过类型转换转换为对象模型
-
比mongodb驱动容易
-
可以使用中间件来应用业务逻辑
-
支持的数据类型
类型 | 作用 |
---|---|
String | 定义字符串 |
Number | 定义数字 |
Date | 定义日期 |
Buffer | 定义二进制 |
Boolean | 定义布尔值 |
Mixed | 定义混合类型 |
ObjectId | 定义对象ID |
Array | 定义数组 |
热度
百度指数查询mongoose显示关键词未收录
mongodb需求图谱:
mongoose位于较中心位置,使用人数应该挺多
实际使用
//引入mongoose模块
var mongoose = require('mongoose');
//连接mongoose数据库
mongoose.connect('mongodb://127.0.0.1:27017/TEST')
//监听连接状态
mongoose.connection.once('open',() => {
console.log('数据库连接成功....')
})
mongoose.connection.once('close',() => {
console.log('数据库断开....')
})
//引入Schema
var Schema = mongoose.Schema;
//创建Schema对象
var schema = new Schema({
name:String,
age:Number,
gender:{
type:String,
default:'male'
},
addr:String
})
//通过Schema传教Model
var stuModle = mongoose.model('student',schema)
//添加数据
stuModle.create({
name:"小明",
age:"20",
addr:"天津"
},(err,docs)=>{
if(!err){
console.log('插入成功'+docs)
}
})
测试
Mixed 混合数据类型,可以直接定义{}来使用
Mixed类型是一种未定义的类型
赋值任意类型的数据都可以通过
对应数据类型
Mongoose | MongoDB |
---|---|
String | String |
Number | 数值小会转化成int32,数值大对转化成Double,没发现int64 |
Date | Data |
Buffer | Binary |
Boolean | Boolean |
Mixed | 所以格式都可以 |
ObjectId | ObjectId |
Array | Array |