MongoDB之基本操作与日常维护
MongoDB基本操作
MongoDB的基本操作主要是对数据库、集合、文档的操作,包括创建数据库、删除数据库、插入文档、更改文档、删除文档、和查询文档。
| 操作 | 描述 |
|---|---|
| show dbs | 查看当前实例下的数据库列表 |
| show users | 显示用户 |
| use <db_name> | 切换当前数据库 |
| 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 ID : 此数据类型用于存储文档的ID。
- 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;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i}) //循环写入100条数据
mongoexport -d school -c info -o /opt/info.json //导出
mongoimport -d school -c info1 --file /opt/info.json //导入到info集合
mongoexport -d school -c info1 -q '{"id":{"$eq":10}}' -o /opt/top10.json //条件导出指定第10行
二.备份与恢复
备份:mongodump
恢复:mongorestore
参数说明:
- -h: MongoDB所在服务器地址
- -d:需要备份的数据库实例
- -o:备份的数据存放的位置,该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
mkdir /backup //创建存放目录
mongodump -d abc -o /backup/ //备份abc数据库
mongorestore -d abc123 --dir=/backup/abc //恢复到abc123数据库
三.复制数据库
db.copyDatabase
>db.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命令。
MongoDB之基本操作与日常维护的更多相关文章
- nginx日常维护常用命令
http://www.jb51.net/article/47750.htm 一.简明nginx常用命令 1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. ...
- Nginx日常维护操作(3)
一.简明nginx常用命令 1. 启动 Nginx /sbin/nginx service nginx start 2. 停止 Nginx /sbin/nginx -s stop /sbi ...
- ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 数据库日常维护-CheckList_01历史Agent Job执行情况检查
检查Agent Job中日常维护作业或业务作业是否成功,如每天的备份.碎片整理.索引维护.历史备份文件清除等,可利用SSMS工具,通过CDC下面设置好的DB Server List,运行下面脚本一次, ...
- MS SQL 日常维护管理常用脚本(二)
监控数据库运行 下面是整理.收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(一)的续集,欢迎大家补充.提意见. 查看数据库登录名信息 Code Snippet SELEC ...
- 2.goldengate日常维护命令(转载)
goldengate日常维护命令 发表于 2013 年 7 月 4 日 由 Asysdba 1.查看进程状态 GGSCI (PONY) 2> info all 2.查看进程详细状态,有助于排错 ...
- db2日常维护
一. DB2日常维护操作 1.数据库的启动.停止.激活 db2 list active databases db2 active db 数据库名 db2start --启动 db2stop [forc ...
- svn服务配置和日常维护命令
Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux AS3 AS 4 ContOS AS 4 安装包获取: 下载[url]ht ...
- mongodb的基本操作与插入文档(document)
一.mongodb的基本操作: 1.查看mongodb当前所有的databases : show dbs 2.选择数据库(database) : use databaseName(该数据库不存在则会自 ...
随机推荐
- 解密TTY
本文内容来自The TTY demystified ,讲述了*NIX系统中TTY的历史与工作原理,看完后解决了我很多疑惑,于是做此翻译,与大家分享. 译者:李秋豪 江家伟 审校: V1.0 Sun M ...
- SVN服务器搭建--Subversio与TortoiseSVN的配置安装(Windows)
1. Subversio和TortoiseSVN 简介 Subversio简介: Subversion是一个自由,开源的版本控制系统,可以随意地免费下载.修改.以及重新发布. 是一个通用系统,可以管 ...
- ZooKeeper的安装
一.准备 需要提前安装好Java 准备好zookeeper的软件包:软件包地址 二.部署 解压zookeeper压缩包到指定目录 执行如下命令: .tar.gz -C /opt/ 三.修改配置 ...
- (WCF初体验)WCF的认证和消息保护
最近做WCF开发,有个需求是在服务端做认证,网上查资料了解到可以用UserName和Password 来做认证,只需要写好配置文件和在服务端写好验证类就行了,但是网上普遍的博文都是需要用证书,而我自己 ...
- 关于Linux虚拟化技术KVM的科普 科普五(From 世民谈云计算)
另一位大神写到KVM文章,KVM 介绍(1):简介及安装.KVM 介绍(2):CPU 和内存虚拟化.KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtual ...
- Python基础之Windows下Python3.x环境搭建
本文介绍使用Python3.x搭建Python环境,文章最后将使用Windows自带的cmd写一个简单的Python程序. 下载Python环境安装包 在https:/www.python.org/下 ...
- 系列博文-Three.js入门指南(张雯莉)-静态demo和three.js功能概览
一:一个最简单的静态DEMO //body加载完后触发init() //WebGL的渲染是需要HTML5 Canvas元素的,你可以手动在HTML的<body>部分中定义Canvas元素, ...
- 简书markdown教程
1 支持 Markdown 的编辑器 Windows 推荐 Sublime Text 3,强大优雅的编辑器.MarkdownPad,一款可以直接预览排版效果的编辑器. Mac 推荐 Ulysess,专 ...
- GO语言.树莓派.环境安装和测试
Go是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言.为了方便搜索和识别,有时会将其称为Golang 记录一下如何在树莓派上安装语言环境 第一步: 下载安装包 http ...
- 排序1,2......n的无序数组,时间复杂度为o(n),空间复杂度为o(1)
#include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _T ...