当前位置:   article > 正文

MongoDB_mongo 数据库下载

mongo 数据库下载

目录

一、Mongo概述

二、安装&下载

1.下载:

2.安装

三、基本命令

数据库操作

创建表

插入数据

查询数据

修改数据

删除数据

索引

四、Python与MongoDB交互

1.安装pymongo

2.使⽤


一、Mongo概述

  1. MongoDB是什么?

    MongoDB是⾮关系型数据库(No sql)

  2. 为啥需要学习MongoDB?

    • 企业需求

    • 爬⾍爬取数据到⼀个量级 使⽤MongoDB⽐mysql好⼀些

  3. MongoDB特点

    • ⽆数据结构(⽅便爬⾍)

    • (具有⾮常⾼读写能⼒)

    • 良好的⽀持 (完善⽂档,跨平台,稳定)

二、安装&下载

1.下载:

官网:MongoDB: The Developer Data Platform | MongoDB

2.安装

安装步骤:

双击安装文件

点击下一步

勾选并点击下一步

安装方法:默认安装会默认安装到C盘,不能修改安装路径

这里我选择自定义安装

自定义安装路径

默认即可

取消勾选,并点击下一步

如果不取消勾选,会自动安装一个软件:用来管理此数据库的程序,当由于是从国外网站下载程序,速度会很慢,为避免安装过程中出现问题,我们就取消勾选。

点击安装

等待安装完成即可。

三、基本命令

SQL概念MongoDB概念解释
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield字段/域
indexindex索引
primary keyprimary key主键
  • 数据库:database
  • 集合:collection    表
  • 文档:document   一行数据

数据库操作

  1. show dbs/databases # 查看数据库
  2. cls # 清屏命令
  3. use mark # 使⽤/切换数据库/创建数据库
  4. db # 查看当前正在使⽤数据库名称
  5. show collections/tables # 查看当前数据库下的集合(表)
  6. db.dropDatabase() # 删除当前正在使⽤的数据库

db.demo2.isCapped()   # 查看是否设置了上限

创建表

  • 不⼿动创建表(当前没有这个表,插⼊⼀条数据,表⾃动创建)

    db.demo1.insert({x:1})

  • ⼿动创建表

    1. db.createCollection(name,option)
    2. name:创建集合名称
    3. option:⼀个字典 指定创建集合的配置
    4. capped: 默认False 没设置上限 True 设置上限
    5. size: 表示设置上限的⼤⼩ 字节 如果设置⼤⼩<256 默认为256
    6. max: number 指定上限集合的最⼤允许的⽂档数量 (最⼤⾏数)
    7.    # 超过范围数据会被覆盖
    8. # 例⼦
    9. db.createCollection('demo1',{capped:true,size:5000,max:4})
    10. # 检测当前集合有没有设置上限 false没有 true有
    11. db.xuyichun.isCapped()

capped:true,必须有size

插入数据

insert()

  • 插⼊一条数据
db.demo1.insert({'name':'xuyichun','age':22})

  • 插入多条数据
db.demo1.insert([{name:'小泽',age:20,addr:'南京'},{name:'小超',age:20,addr:'南京'}])
for(i=3;i<10;i++)db.demo1.insert({x:i})

  • save()
db.mark.save({_id:1,name:'朱泽'})

查询数据

find()

  • 查询集合内所有数据

    db.demo1.find() 
     
  • 精确查询

    db.demo1.find({addr:'徐州'}) 
  • 格式化显示查询结果

    db.demo1.find({addr:'徐州'}).pretty() 
  • 符合条件的第⼀条数据

    db.demo1.findOne({addr:'徐州})
     
  • 多条件查询

    db.demo1.findOne({addr:'徐州',name:'小义'})
     

操作查询结果

  • 查询集合⾥数据个数

    1. db.demo1.find().count()
    2. db.demo1.count()
     
  • 查询符合条件数据个数

    1. db.demo1.find({addr:'徐州'}).count()
    2. db.demo1.count({addr:'徐州'})
     
  • 查询前⼏条数据 限制条件 不分负号

    1. db.demo1.find().limit(2)
    2. db.demo1.find().limit(-2)
     
  • 跳过⼏条数据

    db.demo1.find().skip(2)
     
  • 查询age>19数据

    db.demo1.find({age:{$gt:19}})

    等于:默认是等于判断,没有运算符

    ⼩于:$lt

    ⼩于等于:$lte

    ⼤于:$gt

    ⼤于等于:$gte

    不等于:$ne

  • ⾃定义查询

    db.demo1.find({$where:function(){return this.age > 19;}})

    如果age对应的值是字符串类型的,也能筛选出来,而db.demo1.find({age:{$gt:19}})这种方法就筛选不出来

  • 映射:返回指定字段,如果为1 返回该字段,_id列默认显示

    2个字典分别代表的含义:

    1. 显示行

    2. 显示列

    1. db.xuyichun.find({},{age:1})
    2. db.xuyichun.find({},{age:1,_id:0})
     
  • 排序

    1. # 按照年龄升序
    2. db.xuyichun.find().sort({age:1})
    3. # 按照年龄降序
    4. db.xuyichun.find().sort({age:-1})
     

拓展:正则查询

  1. # 查询英文、数字类型的数据
  2. db.demo1.find({name:{$regex:'\\w'}})
  3. # 查询中文类型的数据
  4. db.demo1.find({name:{$regex:'\u4e00-\u9fa5'}})

修改数据

update()

三个字典分别代表的含义:

  1. query:查询条件

  2. update: 更新的内容

  3. multi:默认false 表示更新第⼀个符合条件的数据 true 把所有满⾜条件的数据进⾏更新

  • 正常更新 其余字段不保留

    db.demo1.update({name:'小义'},{name:'小毅'})
     
  • 指定字段更新 保留其余字段

    db.demo1.update({name:'小强'},{$set:{name:'小弱'}})
     
  • 符合条件全部进⾏更新

    db.demo1.update({addr:'南京'},{$set:{addr:'江宁'}},{multi:true})
     

删除数据

remove()

  • 删除集合

    db.demo2.drop()

  • 删除集合下所有数据

    db.demo2.remove({})

  • 删除符合条件的数据

    1. # 删除符合条件的所有数据
    2. db.demo1.remove({addr:'江宁'})
    3. # 删除符合条件的第n条数据
    4. # justOne
    5. # justTwo
    6. # justThree
    7. #.....
    8. # 只有justOne生效,其余都是删除匹配到的所有数据
    9. db.demo1.remove({addr:'徐州'},{justOne:true})

  • delete效率⽐remove⾼

    1. db.xuyichun.deleteOne({age:96})
    2. db.xuyichun.deleteMany({age:18})

索引

更快

  • 插⼊示例数据

    for(i=0;i<100000;i++){db.test.insert({name:'test'+i,age:i})}

    运行之后可以看到光标一直在闪,是因为想要插入的数据太多,程序一直在运行中,一段时间之后就会运行完成

    我们查看一下插入的数据,发现只能看到20条数据

    可以查看更多数据

  • 创建索引前

    1. db.test.find({name:'test9999'})
    2. db.test.find({name:'test9999'}).explain('executionStats')# 40ms

  • 创建索引

    db.test.ensureIndex({name:1}) # name字段作为索引

  • 创建索引后

    db.test.find({name:'test9999'}).explain('executionStats') # 12ms

  • 查看集合

    db.test.getIndexes()

  • 删除索引

    db.test.dropIndex({name:1})

  • 默认情况下 _id 是集合的索引

四、Python与MongoDB交互

1.安装pymongo

pip install pymongo -i https://pypi.douban.com/simple

2.使⽤

插入

  1. import pymongo
  2. # 创建链接
  3. conn = pymongo.MongoClient()
  4. conn['data']['demo1'].insert_one({'x':'1'})

  1. import pymongo
  2. # 创建链接
  3. conn = pymongo.MongoClient()
  4. # conn['data']['demo1'].insert_one({'x':'1'})
  5. conn['data']['demo1'].insert_many([{'x':'2'},{'x':'3'}])

查询

  1. import pymongo
  2. # 创建链接
  3. conn = pymongo.MongoClient()
  4. # conn['data']['demo1'].insert_one({'x':'1'})
  5. # conn['data']['demo1'].insert_many([{'x':'2'},{'x':'3'}])
  6. res = conn['data']['demo1'].find()
  7. for i in res:
  8.    print(i)

运行结果:

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号