magic-api的使用(操作mongodb数据库)

操作

  • 查询条件同一使用selectQuery,一个接口有其他查询条件的话单独写

  • const selectQuery = {
          
          
        // 查询条件
       /** 
       		"t_id": "ruzhudiaofang",
        	"f_jbxx_laoren": [ laoren ],
        	"deleted": 0,
        **/
        
        // 限制范围 $in
        // 设置查询的某个字段的值在指定范围内的数据
        "字段名": {
          
          
            "$in": []
        }
        
        // 模糊查询 $regex
        // 会模糊匹配数据,只要数据中后keyword值,就会查到该数据
        "字段名": {
          
           // 模糊查询
         	"$regex": keyword
        }
    }
    
  • 查询语句写法

    • 基本查询语句

      • // cid为工作区id
        // find当中是查询条件
        // 返回一个数组
        const rows = mongo.database('数据库').collection(cid).find(selectQuery).list()
        
    • 带分页查询

      • const page = body.page ? body.page : 1; // 请求传递的page
        const pageSize = body.pageSize ? body.pageSize : 10; // 请求传递的pageSize
        const skip = (page - 1) * pageSize; // 跳过多少条数据
        
        // skpt() 指定跳过的数据条数,开始是0,当第二页时,会跳过skip条数据
        // limit() 设置返回的数据条数
        const rows = mongo.database('数据库').collection(cid).find(zuZhiObj).skip(skip).limit(pageSize).list();
        
    • 带排序查询

      • // sort() 括号里面是一个对象,对象的属性名是要基于那个字段进行排序,属性值有-1和1,-1是降序排序,也就是让最新的数据在最前面
        let rows = mongo.database('数据库').collection(cid).find(gonggaoQueryObj).sort({
                  
                   FB_time: -1 }).skip(skip).limit(pageSize).list();
        

  • 添加条件同一使用saveData,一个接口有其他添加条件的话单独写

    • const saveData = {
              
              
          '_id': _id, // 数据的id
      	// 其他添加字段
      }
      
  • 添加语句写法

    • // 用saveResult标识添加语句执行的结果
      const saveResult = mongo.database('数据库').collection(cid).insert(saveData);
      
  • 添加成功与否的判断

    • // 如果该添加语句执行成功,会返回null
      if (saveResult === null) {
              
              
          // 自定义成功返回的数据
          return response.json({
              
              
              code: '10000', 
              success: 'success',
              message: '新增成功'
          })
      } else {
              
              
          return response.json({
              
              
              code: '10001',
              error: 'error',
              message: '新增失败'
          })
      }
      

  • 修改条件同一使用updataQuery,一个接口有其他更改条件的话单独写

  • 这个主要是用来定位要修改数据的

    • const updataQuery = {
              
              
          "_id": _id 
      }
      
  • 修改语句写法

    • // 更新语句(此处是updateOne,更新一条数据)
      // updateOne(参数一, 参数二)
      // 参数一用来锁定要更新的数据
      // 参数二是要修改的字段
      const updataResult = mongo.database('数据库').collection(cid).updateOne(updataQuery, {
              
              
          $set: diaoFangRecord
      })
      
  • 更新成功与否的判断

    • updataResult接收更新语句执行的结果,是一个对象

      • "updataResult": {
                  
                  
            "matchedCount": 1, // 匹配的条数
            "modifiedCount": 1, // 修改的条数, 如果修改后和原数据一致会返回0
            "upsertedId": null
        },
        
      • if(updataResult.matchedCount) {
                  
                  
            // 个人感觉只要匹配到数据就相当于数据更新成功,即使数据和原数据没有任何变化
            return response.json({
                  
                  
                code: '10000',
                success: 'success',
                message: '更新成功'
            })
        } else {
                  
                  
            return response.json({
                  
                  
                code: '10001',
                success: 'error',
                message: '更新失败'
            })
        } 
        

运算符

查询使用运算符

  • 常用
  1. $eq:等于运算符,用于匹配字段值等于指定值的文档。例如:{ 字段名: { $eq: 值 } }
  2. $ne:不等于运算符,用于匹配字段值不等于指定值的文档。例如:{ 字段名: { $ne: 值 } }
  3. $gt:大于运算符,用于匹配字段值大于指定值的文档。例如:{ 字段名: { $gt: 值 } }
  4. $gte:大于等于运算符,用于匹配字段值大于等于指定值的文档。例如:{ 字段名: { $gte: 值 } }
  5. $lt:小于运算符,用于匹配字段值小于指定值的文档。例如:{ 字段名: { $lt: 值 } }
  6. $lte:小于等于运算符,用于匹配字段值小于等于指定值的文档。例如:{ 字段名: { $lte: 值 } }
  7. $in:在指定值数组中的运算符,用于匹配字段值在指定值数组中的文档。例如:{ 字段名: { $in: [值1, 值2, ...] } }
  8. $nin:不在指定值数组中的运算符,用于匹配字段值不在指定值数组中的文档。例如:{ 字段名: { $nin: [值1, 值2, ...] } }
  9. $exists:检查字段是否存在的运算符,用于匹配包含指定字段的文档。例如:{ 字段名: { $exists: true } }
  10. $and:逻辑与运算符,用于同时满足多个条件的文档。例如:{ $and: [{ 条件1 }, { 条件2 }, ...] }

更新使用运算符

  • 常用
  1. $set:用于设置文档中的字段值。例如:{ $set: { 字段名: 值 } }
  2. $inc:用于将字段的值增加一个指定的数值。例如:{ $inc: { 字段名: 增加的值 } }
  3. $mul:用于将字段的值乘以一个指定的数值。例如:{ $mul: { 字段名: 乘以的值 } }
  • 不常用
  1. $unset:用于从文档中删除指定字段。例如:{ $unset: { 字段名: 1 } }
  2. $rename:用于将字段重命名为一个新的名称。例如:{ $rename: { 原字段名: 新字段名 } }
  3. $currentDate:用于将字段的值设置为当前的日期或时间。例如:{ $currentDate: { 字段名: true } }
  4. $addToSet:用于向数组字段中添加元素,如果元素已经存在则不重复添加。例如:{ $addToSet: { 字段名: 值 } }
  5. $push:用于向数组字段中添加元素。例如:{ $push: { 字段名: 值 } }
  6. $pull:用于从数组字段中删除指定的元素。例如:{ $pull: { 字段名: 值 } }
  7. $pop:用于从数组字段中删除第一个或最后一个元素。例如:{ $pop: { 字段名: 1 } }(删除最后一个元素)。

猜你喜欢

转载自blog.csdn.net/B1841630/article/details/131440800