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之基本操作与日常维护的更多相关文章

  1. nginx日常维护常用命令

    http://www.jb51.net/article/47750.htm 一.简明nginx常用命令 1. 启动 Nginx poechant@ubuntu:sudo ./sbin/nginx 2. ...

  2. Nginx日常维护操作(3)

    一.简明nginx常用命令 1. 启动 Nginx /sbin/nginx   service nginx start   2. 停止 Nginx /sbin/nginx -s stop   /sbi ...

  3. ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  4. 数据库日常维护-CheckList_01历史Agent Job执行情况检查

    检查Agent Job中日常维护作业或业务作业是否成功,如每天的备份.碎片整理.索引维护.历史备份文件清除等,可利用SSMS工具,通过CDC下面设置好的DB Server List,运行下面脚本一次, ...

  5. MS SQL 日常维护管理常用脚本(二)

    监控数据库运行 下面是整理.收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(一)的续集,欢迎大家补充.提意见. 查看数据库登录名信息   Code Snippet SELEC ...

  6. 2.goldengate日常维护命令(转载)

    goldengate日常维护命令 发表于 2013 年 7 月 4 日 由 Asysdba 1.查看进程状态 GGSCI (PONY) 2> info all 2.查看进程详细状态,有助于排错 ...

  7. db2日常维护

    一. DB2日常维护操作 1.数据库的启动.停止.激活 db2 list active databases db2 active db 数据库名 db2start --启动 db2stop [forc ...

  8. svn服务配置和日常维护命令

    Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux AS3  AS 4   ContOS AS 4 安装包获取: 下载[url]ht ...

  9. mongodb的基本操作与插入文档(document)

    一.mongodb的基本操作: 1.查看mongodb当前所有的databases : show dbs 2.选择数据库(database) : use databaseName(该数据库不存在则会自 ...

随机推荐

  1. 学习CTF的经历-文件分析

    文件分析-ZIP伪加密 最近在准备铁人三项赛的比赛,所以在实验吧上尝试着学习CTF,目前菜鸡一枚 我主要负责的是Web和安全杂项这一块,安全杂项的知识点较为薄弱,在实验吧练习的过程中遇到一个很有趣的题 ...

  2. Win10 UWP开发系列:解决Win10不同版本的Style差异导致的兼容性问题

    最近在开发一个项目时,遇到了一个奇怪的问题,项目依赖的最低版本是10586,目标版本是14393,开发完毕发布到商店后,很多用户报无法正常加载页面.经查,有问题的都是Win10 10586版本. 我上 ...

  3. Python_跟随目标主机IP变换

    ''' 为了防止黑客攻击或者负载均衡,会经常变换主机,这样同一个域名在不同时间可能会对应不同的IP地址,在这种情况下可以通过 socket模块的gethostbyname()函数来实时获取目标主机的I ...

  4. 微信小游戏开发之四:使用three.js引擎

    一.前言 微信小游戏中最魔性的'跳一跳'就是基于three.js 引擎开发的 源码放到github上了:GitHub地址   请自行下载. 二.下载 three.min.js 打开页面,复制代码到本地 ...

  5. D. Kuro and GCD and XOR and SUM

    Kuro is currently playing an educational game about numbers. The game focuses on the greatest common ...

  6. 解决Ubuntu系统下的VMware Workstation无法打开虚拟网络编辑器界面的问题

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=630 操作环境: Ubuntu 17 VMware 14 pro for Linux 问题描述: 我在Ubuntu ...

  7. Spring Boot Hikari

    Guys, I got the following properties to work, kind of. The following creates 2 pools. One connection ...

  8. javascript 内存管理

    1.垃圾回收机制 在编写Javascript程序时,开发人员不用关心内存问题,内存分配及无用内存的回收完全实现了自动化管理.垃圾收集器会按照预定的时间间隔, 周期性的找出那些不再继续使用的变量,然后释 ...

  9. ZooKeeper入门搭建教程

    http://www.wxdl.cn/cloud/zookeeper-build.html 本文是ZooKeeper的快速搭建,旨在帮助大家以最快的速度完成一个ZK集群的搭建,以便开展其它工作.本方不 ...

  10. DD XOFT虚拟键盘鼠标

    下载:http://www.ddxoft.com/ 简介:最多用户选择,最简单易用,最稳定可靠 永久免费 系统底层集成,真正的驱动级硬件模拟 一键安装,即为电脑添加一对可完全编程控制的键盘鼠标,轻松自 ...