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();
        
    • 模糊查询

      • // 指定字段进行模糊匹配,使用关键字 $regex 
        const selectLaoRen = {
            "t_id": "laoren",
            "deleted": 0,
            "name": { // 模糊查询
                "$regex": laorenName
            }
        }
        
        const laorenArr = mongosql.find(selectLaoRen).list()
        const count = mongosql.count(selectLaoRen);
        
    • 指定返回的字段

      • // 通过 projection 进行指定返回的字段,将要返回的字段的属性值置为1就标识返回,projection 要写在find之后
        const listQuery = {
            "t_id": 'laoren',
            "deleted": 0,
            "age": {
                "$gte": 55,
            },
        };
        const list = mongosql.find(listQuery).projection({
            name: 1,
            age: 1,
        }).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 } }(删除最后一个元素)。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不断蜕变灬青春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值