mongoose總結

經常使用的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()跳過前幾個查詢結果
相關文章
相關標籤/搜索