經常使用的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.findOneAndUpdate(conditions, message); // 結合async await使用
經過id修改
let id = _id // 數據中的_id
let message = {name: "張三啊啊", age: 33}; // 修改內容
Model.findByIdAndUpdate(id, message, {new, true}, (err, result) => {callback})
或者
let docs = await Model.findOneAndUpdate(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使用
數量查詢--count
let conditions = {name: "張三", age: 22};//查詢條件
// 查詢不到返回爲0,不會報錯
Model.count(conditions, (err, result) => {callback})
或者
let docs = await Model.count(conditions); // 結合async await使用
Tips:
- update更新數據,默認返回爲更新前的數據,須要第三個參數增長
{new: true}
- find查詢數據,沒有數據返回的是一個空數組,需判斷數組的
length
- find查詢返回數組,findOne和findById返回的是對象
- 查詢條件能夠經過_id進行比較,如:{_id: {$lt: "1232131234124123231"}}
複雜條件查詢
· 正則表達式 -- $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()跳過前幾個查詢結果