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.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()跳过前几个查询结果<p>---恢复内容结束---</p>## 常用的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()跳过前几个查询结果

猜你喜欢

转载自www.cnblogs.com/lx9408/p/10334190.html