MongoDB入门实操一
什么是MongoDB
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
如何搭建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 进入(推荐)
Mongo的常规使用
在容器里面操作使用Mongo数据库: # 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数据库插入数据,所以显示不出来。接下来我们继续看看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命令进行了解释),希望对新手有帮助。
云鲸一个90后创业者如何突围千亿扫地机市场9月25日,扫地机器人领域的后起之秀云鲸,推出新品云鲸J2,主打拖地全自动,在前一代产品J1自动回洗拖布的基础上,添加了自动换水自动添加清洁液等功能,并把自动换水功能做成了一个可选
高端显示器如何选?这四款产品定保你满意高端显示器有着比普通产品更强的画面表现能力和更为丰富的功能,面对用户再苛刻的要求也能轻松应对。不过在选购高端显示器的时候,面对产品那复杂的参数和新技术,很多人会犯了难,不知道该去如
6G要来了?中国6G专利申请量领跑全球角马自己手机的5G都还没用利索,听说6G过两年就要来了,各国在6G专利之间的竞争也早已开始。日前华为更一步表态6G网络将在2030年建成。(图源网络,下同)据媒体报道,中国在6G技
终于开始了!美要求台积电提交代工数据,意味着什么?文科技热点科技咖原创内容,禁止抄袭,违者必究!近年来,各界关于芯片的讨论议题越演越烈,作为全球芯片制造的领头羊,台积电也多次被推上风口浪尖。根据腾讯科技讯9月27日消息称,小美为了
夏普今日发布两个新机型夏普今日发布两个新机型AQUOSzero6以镁合金框架和康宁Victus玻璃为机身材质,成功将机身重量降至145g,仅比前作AQUOSzero2重5g,同时配备了4000mah以上
华为重磅推出的MetaAAU里,藏着中国5G领先世界的秘密9月27日,而立之年的北京通信展第一天,华为就放了一个大招华为无线产品线总裁杨超斌发布了引入超大规模天线阵列技术的MetaAAU,这是一条MassiveMIMO创新的新方向,也是5
机皇和旗舰有什么区别?研究发现3点不同,别乱花钱了手机市场如果细分,其实是有高低贵贱之分的,比如低端机千元机旗舰机高端机还有大家俗称的机皇,前面几个好理解,那么机皇和旗舰手机有什么区别呢?为什么售价几乎相同,但大家更愿意称下面这两
数字人民币重在场景落地我国数字人民币的创新探索正不断深入。中国人民银行发布的中国数字人民币的研发进展白皮书显示,截至6月30日,数字人民币试点场景已超132万个。当前,数字人民币在101等不同城市进行探
TikTok全球月活用户突破10亿Hello,大家早上好,又是元气满满的一天,先来浏览新鲜的早报吧TikTok全球月活用户突破10亿据外媒报道,TikTok宣布,其全球月活跃用户数量已突破10亿。快手搜索日均搜索次
阿里女员工性侵案又有最新进展,张某妻子正式控告阿里女员工周莉阿里女员工性侵案波澜再起,涉案的张某妻子今天发文称正式起诉阿里女员工周莉诬告陷害,并被受理。从回执单可以看出,就是今天到派出所报案并被受理的。涉事张国的妻子在文中揭穿了周莉勾引诬告
亚马逊品牌引流,跨境电商做亚马逊平台上新流量期规划亚马逊是拥有巨大流量的跨境电商平台,目前,亚马逊全球共有18个站点,而且入驻门槛不算高,因此很多跨境电商卖家从事跨境电商行业会优先选择入驻亚马逊平台。跨境电商市场目前呈上升发展的趋