mongoose基础操作
Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose是 NodeJS 的驱动,不能作为其他语言的驱动。
操作步骤
1、通过npm命令安装:npm install mongoose --save
2、引入mongoose并连接数据库(需要在连接地址后制定数据库):
3、定义Schema
数据库中的 Schema,为数据库对象的集合。schema 是 mongoose 里会用到的一种数据模式,可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备操作数据库的能力。
4、创建数据模型
model 是由 schema 生成的模型,可以对数据库的操作。mongoose.model 里面可以传入两个参数也可以传入三个参数:
- mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema)
- mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名称)
如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面方法创建模型,那么这个模型将会操作 users 这个集合。
如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称:如通过下面方法创建模型,那么这个模型将会操作students这个集合。
增删改查
新增数据
在新增数据时,数据结构需要同Schema中的定义保持一致:多余的属性不会被添加;缺失的属性添加成功后,属性缺失;有默认值的熟悉,在添加时可以省略。
更新数据
查找数据
删除数据
mongoose预定义模式修饰符
mongoose 提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化:
- lowercase:全部转小写
- uppercase :全部转大写
- trim:去除收尾空格
const mongoose = require('mongoose'); mongoose.connect('mongodb://127.0.0.1:27017/goods',{ useNewUrlParser: true },function(err){ if(err){ console.log(err); return; } console.log('数据库连接成功') }); var UserSchema = mongoose.Schema({ name:{ type:String, trim:true }, age:Number, hobbies:{ type:String, lowercase:true, }, nationality:{ type:String, uppercase:true, }, status:{ type:String, default:1 } }) var User = mongoose.model('User',UserSchema); var u = new User({ name:' Tom ', age:20, hobbies:'FootBall', nationality:'Spain' }) u.save(function(err){ if(err){ console.log(err); return; }else{ User.find({},function(err,data){ if(err){ console.log(err); return; }else{ console.log(data); } }) } })
Getters 与 Setters 自定义修饰符
除了 mongoose 内置的修饰符以外,我们还可以通过 set(建议使用) 修饰符在增加数据的时候对数据进行格式化。也可以通过 get(不建议使用)在实例获取数据的时候对数据进行格式化。
例如,用户数据中存储当前用户的博客地址,在存储地址前,先判断地址是否是'http://'或者'https://'开头的,不是则添加。