• MongoDB入门实操《上篇》


    欢迎关注【无量测试之道】公众号,回复【领取资源】,
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、

    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。
     

    1、什么是MongoDB

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

    2、如何搭建MongoDB服务

    step1:docker pull mongo

    step2:docker run -d --name mongotest -p 27017:27017 mongo --auth (推荐) 

    或者:docker run -d --name mongotest -p 27017:27017 mongo

    备注:--auth 表示需要密码才可以访问容器服务

    无--auth 可以直接访问

    step3:进入容器 docker exec -it mongotest bash 或者 通过dashboard 进入(推荐)

    3、Mongo的常规使用

    在容器里面操作使用Mongo数据库:

     1  
     2 # mongo #进入mongo 数据库
     3  
     4 > use admin  #切换到admin db,这个和mysql命令一致
     5 switched to db admin
     6  
     7 #创建一个用户并给admin权限
     8 > db.createUser({ #相当于mysql 的 CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’; and  GRANT privileges ON databasename.tablename TO ‘username’@’host’ 这两条命令的组合 })
     9  
    10 > db.createUser(
    11  {
    12 user: "tony",
    13 pwd: "123456",
    14 roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    15  }
    16 )
    17 Successfully added user: { #命令执行后的提示语
    18 "user" : "tony",
    19 "roles" : [
    20 {
    21 "role" : "userAdminAnyDatabase",
    22 "db" : "admin"
    23 },
    24 "readWriteAnyDatabase"
    25 ]
    26 }
    27  
    28  
    29 > db.auth('tony','123456') #用户鉴权
    30 1 #返回值为1表示成功
    31  
    32 > show dbs; #显示databases,相当于mysql 里面的show databases 命令;
    33 admin   0.000GB
    34 config  0.000GB
    35 local   0.000GB
    36  
    37  
    38 > show collections  #显示出表,相当于mysql 里面的show tables 命令;
    39 system.users
    40 system.version
    41  
    42  
    43 > db.system.users.find() #查询用户信息,相当于是select * from users;
    44 { "_id" : "admin.tony", "userId" : UUID("8aeee678-bccc-443b-a50c-0fe6f74c3ea5"), "user" : "tony", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "RkeAZjD6vZo6Vec6+0nORg==", "storedKey" : "bMyUSGD/g/jFRhjVqQpqFBHIHOo=", "serverKey" : "4z9KSBNCLJSpPZeh0Bjp+ubzgNE=" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "dmbYYJRafHKqqI1iI3SyT9H+JXboN0KpghEfiQ==", "storedKey" : "SutEoaB8D3iz4WXGinegfsU4mt4QFM7FzTcWBJyKrD0=", "serverKey" : "SCiMCtvsem3wRtRGmZxMg12VdbrKb8HiNRZNEDi7gWw=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
    45  
    46 > db.system.users.find().pretty() #查询用户信息并美化输出,相当于是select * from users G;
    47 {
    48 "_id" : "admin.tony",
    49 "userId" : UUID("8aeee678-bccc-443b-a50c-0fe6f74c3ea5"),
    50 "user" : "tony",
    51 "db" : "admin",
    52 "credentials" : {
    53 "SCRAM-SHA-1" : {
    54 "iterationCount" : 10000,
    55 "salt" : "RkeAZjD6vZo6Vec6+0nORg==",
    56 "storedKey" : "bMyUSGD/g/jFRhjVqQpqFBHIHOo=",
    57 "serverKey" : "4z9KSBNCLJSpPZeh0Bjp+ubzgNE="
    58                 },
    59 "SCRAM-SHA-256" : {
    60 "iterationCount" : 15000,
    61 "salt" : "dmbYYJRafHKqqI1iI3SyT9H+JXboN0KpghEfiQ==",
    62 "storedKey" : "SutEoaB8D3iz4WXGinegfsU4mt4QFM7FzTcWBJyKrD0=",
    63 "serverKey" : "SCiMCtvsem3wRtRGmZxMg12VdbrKb8HiNRZNEDi7gWw="
    64                 }
    65         },
    66 "roles" : [
    67                 {
    68 "role" : "userAdminAnyDatabase",
    69 "db" : "admin"
    70                 }
    71         ]
    72 }
    73  
    74  
    75 > use testdb #如果数据库不存在,则创建数据库,否则切换到指定数据库。
    76 switched to db testdb
    77  
    78 > db.testdb.insert({"name":"testdb"}) #现在可以向testdb数据库插入一些数据
    79 WriteResult({ "nInserted" : 1 }) #返回结果为1表示成功
    80  
    81 > use abc 
    82 switched to db abc
    83  
    84 > show dbs #显示当前有些什么数据库
    85 admin 0.000GB
    86 config 0.000GB
    87 local 0.000GB
    88 testdb 0.000GB
    89  
    90 备注:通过这个命令大家会发现abc 数据库为什么没有显示出来了?是因为它没有向testdb数据库插入数据,所以显示不出来。
     1 接下来我们继续看看testdb下有些什么collections(集合)在mysql中称为表;
     2 >  use testdb;
     3 switched to db testdb
     4  
     5 > show collections; #这里展示的是数据库下有哪些表
     6 testdb
     7  
     8 > db.testdb.find() #看见了我们上面insert 的语句的信息了name=testdb
     9 { "_id" : ObjectId("5eecba30a4907f76b3dcf728"), "name" : "testdb" }
    10  
    11 > db.createCollection("tony") #等同于create table 命令
    12 { "ok" : 1 }
    13  
    14 > show tables;  #等同于show collections 命令
    15 testdb
    16 tony
    17  
    18 > db.testdb.drop()  #删除掉了testdb 这个表,等同于drop table 命令
    19 true
    20  
    21 > show tables;  #显示还有什么表(在mongo 里面称为集合)
    22 tony
    23  
    24 > db  #展示当前所在的数据库
    25 testdb
    26  
    27 > db.tony.drop() #删除最后一张tony表
    28 true

    总结:今天的文章主要介绍了什么是Mongo DB, Mongo DB服务的构建及Mongo的一些基础操作命令,如创建用户,用户授权,创建数据,显示数据,创建集合,显示集合,集合数据查询,集合删除等(并对比着mysql命令进行了解释),希望对新手有帮助。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     

     添加关注,一起共同成长吧。

  • 相关阅读:
    Flask基础(10)-->http的无状态协议解决办法一(客户端cookie)
    Flask基础(09)-->请求勾子函数
    Flask基础(08)-->错误捕获(异常捕获)
    Flask基础(07)-->正则自定义转换器
    Flask基础(06)-->视图常用逻辑
    zabbix报警-邮件-钉钉
    Flask实战第68天:项目上线部署
    查看Linux系统资源占用
    Flask实战第67天:Flask+Celery实现邮件和短信异步发送
    Flask实战第66天:celery实现异步任务
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/13261634.html
Copyright © 2020-2023  润新知