前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB入门实操《上篇》

MongoDB入门实操《上篇》

作者头像
Wu_Candy
发布2022-07-04 16:56:03
3020
发布2022-07-04 16:56:03
举报
文章被收录于专栏:无量测试之道

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数据库:

代码语言:javascript
复制
# mongo #进入mongo 数据库

> use admin  #切换到admin db,这个和mysql命令一致
switched to db admin

#创建一个用户并给admin权限
> db.createUser({ #相当于mysql 的 CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’; and  GRANT privileges ON databasename.tablename TO ‘username’@’host’ 这两条命令的组合 })

> db.createUser(
 {
user: "tony",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
 }
)
Successfully added user: { #命令执行后的提示语
"user" : "tony",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
"readWriteAnyDatabase"
]
}


> db.auth('tony','123456') #用户鉴权
1 #返回值为1表示成功

> show dbs; #显示databases,相当于mysql 里面的show databases 命令;
admin   0.000GB
config  0.000GB
local   0.000GB


> show collections  #显示出表,相当于mysql 里面的show tables 命令;
system.users
system.version


> db.system.users.find() #查询用户信息,相当于是select * from users;
{ "_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" } ] }

> db.system.users.find().pretty() #查询用户信息并美化输出,相当于是select * from users \G;
{
"_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"
                }
        ]
}


> use testdb #如果数据库不存在,则创建数据库,否则切换到指定数据库。
switched to db testdb

> db.testdb.insert({"name":"testdb"}) #现在可以向testdb数据库插入一些数据
WriteResult({ "nInserted" : 1 }) #返回结果为1表示成功

> use abc 
switched to db abc

> show dbs #显示当前有些什么数据库
admin 0.000GB
config 0.000GB
local 0.000GB
testdb 0.000GB

备注:通过这个命令大家会发现abc 数据库为什么没有显示出来了?是因为它没有向testdb数据库插入数据,所以显示不出来。
代码语言:javascript
复制
接下来我们继续看看testdb下有些什么collections(集合)在mysql中称为表;
>  use testdb;
switched to db testdb

> show collections; #这里展示的是数据库下有哪些表
testdb

> db.testdb.find() #看见了我们上面insert 的语句的信息了name=testdb
{ "_id" : ObjectId("5eecba30a4907f76b3dcf728"), "name" : "testdb" }

> db.createCollection("tony") #等同于create table 命令
{ "ok" : 1 }

> show tables;  #等同于show collections 命令
testdb
tony

> db.testdb.drop()  #删除掉了testdb 这个表,等同于drop table 命令
true

> show tables;  #显示还有什么表(在mongo 里面称为集合)
tony

> db  #展示当前所在的数据库
testdb

> db.tony.drop() #删除最后一张tony表
true

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

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档