Mongoose是什么?
没有什么比官网文档更为详细的介绍了:mongoose文档
简单来说,mongoose是操作MongoDB的一个对象模型库,它封装了MongoDB对文档操作的常用处理方法(增删改查),让 NodeJS 操作 Mongodb 数据库变得快捷灵活。
连接数据库
1 | var mongoose = require('mongoose'); |
Schema/Model/Entity
- Schema:数据库集合的结构对象。
- Model :由Schema构造而成,可操作数据库。
- Entity:由Model创建的实体,可操作数据库。
数据插入
以用户表为例,用户的定义为:
1 | // 用户表 |
构建新用户文档:
1 | var newUser = new UsersModel ({ |
插入数据库:
1 | newUser.save(function (err){ |
数据查询
基本语法
1 | model.find(conditions, fields, options, callback(err, doc)) |
- conditions:查询条件
- fields:返回的字段(1表示返回,0表示不返回)
- options:游标(sort, limit, skip)
- callback:回调函数,参数doc为查询出来的结果
具体事例
1 | // 省略或为空、返回所有记录;只包含name,age字段,去掉默认的_id字段;执行回调函数 |
1 | // 查询age大于等于28,小于等于48 |
1 | // 查询age为58、68的2条数据 |
1 | // 查询name为test3、或者age为18的全部数据 |
当然,由于MongoDB是非关系数据库,所以mongoose中没有关联查询这么一说,除非自己手动设置。
Mongoose可以进行模糊查询,除了我们在上面列举的$or方式,还能利用$regex进行正则匹配,同时加入了$options设置是否忽略大小写。
具体事例
1 | // mongoose 官网的例子 |
options的参数:
i:不区分大小写
m:匹配有换行符的情况