当前位置 博文首页 > m0_45291815的博客:mongodb简单使用

    m0_45291815的博客:mongodb简单使用

    作者:[db:作者] 时间:2021-09-02 19:07

    mongodbs使用

    1、下载安装mongodb

    官网:https://www.mongodb.com/download-center/enterprise

    安装时不要勾选install mongodb compass,点击后翻墙下载官方可视化管理工具,安装不上。

    安装教程:https://www.cnblogs.com/zhif97/p/12806245.html

    2、操作数据库

    1. 重新打开一个cmd控制台输入
    2. mongo进入环境,开始进行增删改成操作
    3. show dbs :显示所有的数据库
    4. db:显示当前正在使用的数据库
    5. use 数据库名:切换到指定的数据库,有就切换,没有就创建切换
    6. db.dropDatabase():删除当前执行的数据库

    3、集合操作及数据操作

    1、创建集合

    1. db.createCollection("集合名",{capped:true,size:1024\*30}) :创建一个集合

      capped:true.指定库的大小,默认false,即自动分配

      size:1024*30这是30m的库,基于kb的

      show collections : 查看当前使用集合

      了解就行,不需要记,基本是多余的一步

    2、创建并写入数据

    1. db.集合名.insertOne(写入集合的一条数据):像集合写入一条数据,没有此集合会先创建再写入
    2. db.集合名.insertMany(数组对象):写入多条数据,同上
    3. 写入数据不是覆盖式写入,而是追加写入

    3、查看、切换集合

    1. show collections:查看当前库里面所有的集合
    2. use 集合名:切换到指定的集合

    4、删除集合

    1. db.集合名.drop():删除指定的集合,但必须是切换到集合所在库的环境下进行。
    2. db.集合名.remove({}):清空集合内的所有数据

    5、查看数据

    注意:由于写入的是键值对,所有查找的条件也必须是{键值对}。

    1. db.集合名.find():查看集合全部数据
    2. db.集合名.find(条件):按条件进行精确查找
    3. db.集合名.find(条件1,条件2) 查找满足条件1且满足条件2
    4. db.集合名.find($or:[条件1,条件2]) 查找满足条件1或者条件2
    5. db.集合名.findOne(条件):查找显示符合条件的第一条数据
    6. db.集合名.find({"键":{$regex:"值"}}):按条件模糊查询
    7. db.集合名.find({"键":正则表达式})使用正则条件查询
    8. db.集合名.find({"age":{$gt:20}}):查找年龄大于20
    9. $gt:大于
    10. $lt:小于
    11. $gte:大于等于
    12. $lte:小于等于
    13. $ne:不等于
    14. $eq:等于
    15. db.集合名.find().sort({age:1}):按照年龄的正序查找
    16. db.集合名.find().sort({age:-1}) :按照年龄的倒序查找
    17. db.集合名.find().count() :获取集合有条数
    18. db.集合名.find().skip(数字):获取指定条后的数据
    19. db.集合名.find().limit(数字):指定获取多少条数据
    20. db.集合名.find().skip(数字).limit(数字):获取指定条后的几条数据
    21. 以上find()后面的都是可以混合着写的。
    22. db.集合名.find({field: {$in: [ '值1', '值2' ]}}); field只要和array中的任意一个value相同,那么该文档就会被检索出来 —— 包含
    23. $nin —— 不包含

    6、删除数据

    db.集合名.remove(条件):删除指定条件的数据

    db.集合名.deleteMany({}):删除所有数据

    db.集合名.deleteMany({条件对象}):删除所有符合条件的数据

    其他的和查找数据一样,

    7、修改数据

    1. db.集合名.update(筛选条件,{重新写入内容},false):重新写入筛选出来的数据。默认false,即筛选不到不创建。改成true就会创建
    2. db.集合名.update(筛选条件,($set{重新部分内容})):修改部分内容。同上

    8、索引🌙

    为集合建立索引,基于title(还可以是id,就是建立主键)作用是加快查询

    >db.col.createIndex({"title":1})
    

    9、聚合(很少用)

    MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。

    > db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
    {
       "result" : [
          {
             "_id" : "runoob.com",
             "num_tutorial" : 2
          },
          {
             "_id" : "Neo4j",
             "num_tutorial" : 1
          }
       ],
       "ok" : 1
    }
    >
    
    表达式描述实例
    $sum计算总和。db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { s u m : " sum : " sum:"likes"}}}])
    $avg计算平均值db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { a v g : " avg : " avg:"likes"}}}])
    $min获取集合中所有文档对应值得最小值。db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { m i n : " min : " min:"likes"}}}])
    $max获取集合中所有文档对应值得最大值。db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { m a x : " max : " max:"likes"}}}])
    $push在结果文档中插入值到一个数组中。db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", url : { p u s h : " push: " push:"url"}}}])
    $addToSet在结果文档中插入值到一个数组中,但不创建副本。db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", url : { a d d T o S e t : " addToSet : " addToSet:"url"}}}])
    $first根据资源文档的排序获取第一个文档数据。db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", first_url : { f i r s t : " first : " first:"url"}}}])
    $last根据资源文档的排序获取最后一个文档数据db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", last_url : { l a s t : " last : " last:"url"}}}])

    4、数据可视化

    教学网站:https://blog.csdn.net/weixin_39999535/article/details/81383196

    上面的软件是付费使用的,还有免费的软件NoSQLBooster

    软件的使用基本一样,链接数据库需要百度看看

    上面的增删改查(CURD)操作的mongodb语法上面有

    cs
    下一篇:没有了