设为首页 收藏本站
查看: 921|回复: 0

[经验分享] MongoDB之基本操作与日常维护

[复制链接]

尚未签到

发表于 2018-10-24 11:19:37 | 显示全部楼层 |阅读模式
MongoDB基本操作
  MongoDB的基本操作主要是对数据库、集合、文档的操作,包括创建数据库、删除数据库、插入文档、更改文档、删除文档、和查询文档。

操作
描述
show dbs
查看当前实例下的数据库列表
show users
显示用户
use
切换当前数据库
db.help()
显示数据库操作命令
show.collections
显示当前数据库中的集合
db.foo.help()
显示集合操作命令,foo是当前数据库下的集合
db.foo.find()
对当前数据库中foo集合进行数据查找
MongoDB数据类型


  • MongoDB支持许多数据类型的列表下面给出:
  • String : 这是最常用的数据类型来存储数据。在MongoDB中的字符串必须是有效的UTF-8。
  • Integer : 这种类型是用来存储一个数值。整数可以是32位或64位,这取决于您的服务器。
  • Boolean : 此类型用于存储一个布尔值 (true/ false) 。
  • Double : 这种类型是用来存储浮点值。
  • Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较。
  • Arrays : 使用此类型的数组或列表或多个值存储到一个键。
  • Timestamp : 时间戳。这可以方便记录时的文件已被修改或添加。
  • Object : 此数据类型用于嵌入式的文件。
  • Null : 这种类型是用来存储一个Null值。
  • Symbol : 此数据类型用于字符串相同,但它通常是保留给特定符号类型的语言使用。
  • Date : 此数据类型用于存储当前日期或时间的UNIX时间格式。可以指定自己的日期和时间,日期和年,月,日到创建对象。
  • Object>
  • Binary data : 此数据类型用于存储二进制数据。
  • Code : 此数据类型用于存储到文档中的JavaScript代码。
  • Regular expression : 此数据类型用于存储正则表
  

#创建数据库testdb数据库,使用以下语句  
mongos> use testdb;
  
#查询数据库,要显示数据库必须插入至少一条文档
  
mongos> show dbs;
  
#插入数据文档
  
mongos> db.tablename.insert({"name":"antian"});
  
#数据库生成了
  
mongos> show dbs;
  
testdb  0.078GB
  

  
#查询数据库
  
mongos> show dbs;
  
testdb  0.078GB
  
#进入数据库
  
mongos> use testdb;
  
#删除数据库
  
mongos> db.dropDatabase();
  
{ "dropped" : "testdb", "ok" : 1 }
  
#查询数据库
  
mongos> show dbs;
  

#创建集合  
#进入数据库
  
mongos> use testdb;
  
#创建集合
  
mongos> db.createCollection("mycollection")
  
mongos> show tables;
  
mycollection
  

  
#删除集合
  
#进入数据库
  
mongos> use testdb;
  
mongos> show tables;
  
mycollection
  
mongos> db.mycollection.drop();
  
true
  
mongos> show tables;
  

#插入文档  
#插入一条文档
  
mongos> db.tablesname.insert([{"name":"aaaaa","age":"18"}
  
#插入两条文档
  
mongos> db.tablesname.insert([{"name":"ddddd","age":"18"},{"name":"eeee","age":"10"}]);
  
#查询一个文档:
  
mongos> db.tablesname.findOne();
  

MongoDB日常维护

一.导入导出
  mongoimport命令可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式的数据。
  mongoexport命令可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
  参数说明:


  • -d:指明数据库的名字
  • -c:指明collection的名字
  • -f:指明要导出哪些列
  • -o:指明要导出的文件名
  • -q:指明导出数据的过滤条件
  

for(var i=1;idb.copyDatabase("abc","abc1")  //复制数据库abc生成abc1  

四.克隆集合
  runCommand
  将abc中的info集合克隆到实例2
  

mongo --port 27018      //进入实例2  
db.runCommand({"cloneCollection":"abc.info","from":"192.168.100.152:27017"})
  

五.授权启动
  可以配置授权用户来访问MongoDB,启动时必须指定auth=true,否则授权不起作用。  
  可以将用户加入到角色,内置数据库用户角色包括:read、readWrite,数据库管理角色包括:dbAdmin、dbOwner、useAdmin,超级用户角色为root。
  

vim /usr/bin/mongodb1.conf  
......
  
auth=true
  
......
  
mongo
  
>use admin
  
>db.createUser({"zx":"root","pwd":"123","roles":"[root"]})      //创建用户zx,密码为123,分配到root角色
  
>db.auth("root","123")      //验证用户
  

六.进程管理


  • 查看当前正在运行的进程的命令为:db.currentOp()
  • 终止正在运行的高消耗资源的进程命令为:db.killOp(opid)
七.MongoDB监控


  • 查看数据库实例的状态信息:db.serverStatus()
  • 查看当前数据库的统计信息:db.status()
  • 查看集合统计信息:db.users.stats()
  • 查看集合大小:db.users.dataSize()
  • 也可以通过Web界面查看系统监控信息,需要在配置文件中添加下面一行:  httpinterface=true

  然后在浏览器中通过http://localhost:28017 进行访问。通过Web页面可以看到:


  • 当前MongoDB的所有连接
  • 各个数据库和Collection的访问统计,包括:Reads、Writes、Queries、GetMores、Inserts、Updates、Removes。
  • 写锁的状态
  • 日志文件的最后几百行。
  • 所有的MongoDB命令。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625864-1-1.html 上篇帖子: 部署MongoDB分片群集及分片管理 下篇帖子: MongoDB基本操作、备份还原及用户管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表