常用的 mongoose 操作 (增删改查)
增 –create
let message = {};
Model.create(message, (err, result) => {callback});
或者
let docs = await Model.create(message); // 结合 async await 使用
添加多条数据 –insertMany
let message = [];
Model.insertMany(message, (err, docs) =>{callback});
或者
let docs = await Model.insertMany(message); // 结合 async await 使用
删 -remove
通过条件删除
let message = {name: “ 张三 ”};// 删除条件
Model.remove(message, (err, result) => {callback});
或者
let docs = await Model.remove(message); // 结合 async await 使用
通过 id 删除
let id = _id // 数据中的_id
Model.findByIdAndRemove(id, (err, result) => {callback});
或者
let docs = await Model.findByIdAndRemove(id); // 结合 async await 使用
改 -update
通过条件修改
let conditions = {name: “ 张三 ”, age: 22};// 修改条件
let message = {name: “ 张三啊啊 ”, age: 33}; // 修改内容
Model.findOneAndUpdate(conditions, message, {new, true}, (err, result) => {callback})
或者
let docs = await Model.updateOneAndUpdate(conditions, message); // 结合 async await 使用
通过 id 修改
let id = _id // 数据中的_id
let message = {name: “ 张三啊啊 ”, age: 33}; // 修改内容
Model.updateByIdAndUpdate(id, message, {new, true}, (err, result) => {callback})
或者
let docs = await Model.updateByIdAndUpdate(id, message); // 结合 async await 使用
查 –find
通过条件查询
let conditions = {name: “ 张三 ”, age: 22};// 查询条件
查询多条 // 查询不到返回为一个空数组,不会报错
Model.find(conditions, (err, result) => {callback})
或者
let docs = await Model.find(conditions); // 结合 async await 使用
查询一条
Model.findOne(conditions, (err, result) => {callback})
或者
let docs = await Model.findOne(conditions); // 结合 async await 使用
通过 id 查询
let id = _id // 数据中的_id
Model.findById(id, (err, result) => {callback})
或者
let docs = await Model.findById(id); // 结合 async await 使用
Tips:
update 更新数据,默认返回为更新前的数据,需要第三个参数增加 {new: true}
find 查询数据,没有数据返回的是一个空数组,需判断数组的 length
find 查询返回数组,findOne 和 findById 返回的是对象
复杂条件查询
· 正则表达式 — $regex
let reg = new RegExp();
Model.find({$regex: reg}, “$options”:”i”); // “$options”:”i” 控制大小写
· 比较运算符
$equals 等于 / $gt 大于 / $gte 大于等于 / $lt 小于 / $lte 小于等于 / $ne 不等于
· 元素是否存在 — $exists
Model.find({id: {$exists: true});
· 逻辑运算符
$or 或 / $and 与 / $nor 非
· 其他查询条件
.limit() 查询条数
.sort() 查询排序 // - 1 为倒叙
.count() 数量
.skip() 跳过前几个查询结果