• MongoDB常用的语句


    mongodb 可视化工具:

    Robo3T。

    DataGrip,对mongodb的日期格式不友好。

    MongoDB常用的语句:

    注意,凡是涉及到日期类型的,最好都用这种格式 ISODate(“2023-03-27T16:00:00.000Z”)

    MongoDB倒序,查询:

    db.getCollection('abcde').find().sort({ 'createTime': -1 })
    
    • 1

    MongoDB查询,限制个数:

    db.getCollection('abcdef').find().sort({ 'createTime': -1 }).limit(10)
    
    • 1

    MongoDB插入数据

    MongoDB不需要建表,直接插入数据就会建表。
    日期用 ISODate() 转换。

    db.getCollection("mongoDbTest").insert({userId:"dxcefg", status:1,  price:1.23, updateTime : ISODate("2022-02-13T07:06:25.371Z")})
    
    • 1

    MongoDB查询全部

    MongoDB的 Collection(集合),类似于 数据库的表。

    db.getCollection("mongoDbTest").find()
    
    • 1

    MongoDB条件查询

    db.getCollection("mongoDbTest").find({userId:"abc", status: 1})
    
    • 1

    MongoDB模糊查询

    //以abc开头
    db.getCollection("mongoDbTest").find({userId: /^abc/})
    //以abc结尾
    db.getCollection("mongoDbTest").find({userId: /efg$/})
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    MongoDB查询数量

    db.getCollection("mongoDbTest").find({userId: /^abc/}).count()
    
    • 1

    mongoDB查询日期:

    lte 小于等于,gte 大于等于

    db.getCollection('mongoDbTest').find({
       "startTime" : { "$lte" :  ISODate("2023-03-27T16:00:00.000Z")  },
      "endTime" : { "$gte" : ISODate("2023-03-27T16:00:00.000Z")  }
    })
    
    • 1
    • 2
    • 3
    • 4

    MongoDB新增字段

    比如新增一个字段叫 fieldTest,如下 :

    db.getCollection("mongoDbTest").update({},{$set:{ fieldTest:""}})
    
    • 1

    MongoDB修改字段名

    //参数提示:
    //第一个false:可选,这个参数的意思是,如果不存在update的记录,true为插入新的记录,默认是false,不插入。
    //第二个true:可选,mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    db.getCollection("mongoDbTest").update({}, {$rename : {"orderId" : "status"}}, false, true)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    MongoDB删除字段

    db.getCollection("mongoDbTest").update({
        "fieldTest": {
            "$exists": true
        }
    }, {
        "$unset": {
            "fieldTest":null
        }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    MongoDB修改字段值

    update第一个参数是 条件,而 set部分就是修改内容
    以下类似于: update mongoDbTest set status= 4 where status= 1;

    db.getCollection("mongoDbTest").update(
    {"status": 1},
    {$set:    { "status" : 4 } })
    
    • 1
    • 2
    • 3

    MongoDB删除:

    db.getCollection("mongoDbTest").deleteMany({ id:1 })
    
    • 1

    MongoDb 判断数组非空

    db.getCollection('MongoDbTest').find({ "$or": [
        {
            "数组字段名称": {
                "$eq": []
            }
        },
        {
            "数组字段名称": {
                "$eq": null
            }
        }
     ]})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    MongoDB添加索引/查询索引:

    //查索引
    db.getCollection('表名').getIndexes();
    
    //加索引
    db.getCollection('表名').createIndex({"personList":1})
    
    //给Json的某个字段加索引
    db.getCollection('表名').createIndex({"personList.personId":1})
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    MongoDB查看执行计划

    //查看执行计划
    db.getCollection('表名').find({'id':'abcd'}).explain()
    //explain()得到的执行计划字段:
    //stage	查询方式,常见的有COLLSCAN/全表扫描、IXSCAN/索引扫描、FETCH/根据索引去检索文档、SHARD_MERGE/合并分片结果、IDHACK/针对_id进行查询
    //mongoDB的执行计划字段,详情见: https://www.uoften.com/article/221616.html
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    打印mongoDB语句的日志关键词:

    使用 mongoTemplate 查询。

    搜索关键词: find using query

    SpringBoot配置mongodb打印日志。详情见:https://www.cnblogs.com/expiator/p/17375443.html

    参考资料:

    https://www.uoften.com/article/221616.html

  • 相关阅读:
    重点:测试与开发中要考虑的安全问题,那些年我们曾经犯过的错......
    SpringMVC基础概述
    vue+nodejs+express+jwt如何生成并处理token
    【Leetcode】1362. Closest Divisors(配数学证明)
    【此时不应有 \anaconda3\envs\ blenderproc \Library\ssl\cacert.pem】问题已解决
    嵌入式开发为什么要跑操作系统?
    应届生Java面试经验总结
    C# - Opencv应用(2) 之矩阵Mat使用[矩阵创建、图像显示、像素读取与赋值]
    【网管日记】在服务器docker上安装ubantu可视化桌面
    linux 直接部署 java8
  • 原文地址:https://blog.csdn.net/sinat_32502451/article/details/134342559