MongoDB常用操作及概述

MongoDB简介:
Mongodb是一款跨平台、面向文档的数据库可实现高性能、高可用性、并能够轻松扩展是一个基于分布式文件存储的开源数据库系统,在高负载的情况下添加更多的节点,可以保证服务器的性能。
Mongodb同时也是一个介于关系型和非关系型数据库之间的产品,在非关系型数据库中功能最丰富最想关系型数据库。不采用关系摸型主要是为了获得更好的扩展性,不再有row行的概念,其运行方式主要基于两个概念:集合与文档。
MongoDB特点:
面向集合存储、模式自由、丰富的查询语句和多级索引、复制机制、易于水平扩展、可插入存储引擎、跨平台多语言支持。
安装简单提供面向文档存储功能,操作比较容易
提供复制、高可用性和自动分片功能,如果负载增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他计算机节点上,所谓分片。
支持丰富的查询表达式,查询指令使用JSON形式标记可轻易查询文档中内嵌对象及数组
支持各种编程语言:Ruby、Python、java、php、c++、C#
MongoDB适用领域:
可以为WEB 2.0应用提供可扩展的高性能数据存储解决方案,MongoDB主要适用领域有网站数据、分布式场景、数据缓存和Json文档格式存储,适用大数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好的满足web2.0和移动互联网应用数据存储的要求。

常用术语及说明:

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设为主键

数据类型:

数据类型描述
String字符串。存储数据常用的数据类型。在MongoDB中UTF-8编码的字符串才是合法的
Integer整型数值。用于存储数值,根据用户的服务器,可分为32位或64位
Boolean布尔值。用于存储布尔值(真/假)
Double双精度浮点值。用于存储浮点值
Arrays用于将数组或列表或多个值存储为一个键
Object用于内嵌文档
Null用于创建空值
Date日期时间。用户可以指定自己的日期时间,创建Date对象,传入年月日信息
Binary Date二进制数据,用于存储二进制数据

常用的基本操作:

操作描述
show dbs查看当前实例下的数据库列表
show users显示用户
use <db_name>切换当前数据库,创建数据库
db.help()显示数据库操作命令
show collection显示当前数据库中的集合
db.foo.help()显示集合操作命令,foo是当前数据看下的集合
db.foo.find()对当前数据库中foo集合进行数据查找
db.dropDatabase()删除数据库

配置阿里云镜像:

cat>>/etc/yum.repos.d/mongodb-org.repo<<'EOF'
[mongodb-org] 
name = MongoDB Repository
baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck = 1 
enabled = 1 
gpgkey = https://www.mongodb.org/static/pgp/server-3.6.asc
EOF

安装MongoDB

yum -y install mongodb-org 

启动,关闭MongoDB:

mongod -f /etc/mongod.conf #启动
mongod -f /etc/mongod.conf --shutdown #关闭 

多实例:

mkdir -pv /data/mongod1/logs/mongod1
chmod -R 777 /data/*
cp -a /etc/mongod.conf /etc/mongod1.conf
vim /etc/mongod1.conf
#systemLog:
  #destination: file
  #logAppend: true
  #path: /data/logs/mongod1/mongod1.log 更换log目录
  
#storage:
 # dbPath: /data/mongod1  跟换data目录
 # journal:
  #  enabled: true

#net:
 # port: 27017 更换端口 27018
  #bindIp: 127.0.0.1
启动和上边方法一致
进入实例需指定ip及端口
mongo  127.0.0.1:27017
mongo  127.0.0.1:27018

基本操作:

#创建
use test #创建库
dbs #查看创建的库
test

#插入
db.User.insert({'id':1,'name':'opt'}) #往User表插入一条数据
show tables #查看所有集合
User

#查看集合
db.User.find()#查看User集合中的文档
{ "_id" : ObjectId("60055f0b90411bd140ea36cd"), "id" : 1, "name" : "opt" }

#查看类型
a=db.User.findOne({'id':1}) #查看数据类型
{ "_id" : ObjectId("60055f0b90411bd140ea36cd"), "id" : 1, "name" : "opt" }
> typeof(a.id)
number
> typeof(a.name)
string

#更新
{ "_id" : ObjectId("6005627b90411bd140ea36ce"), "id" : 1, "name" : "opt" }#更新前
db.User.update({'id':1},{$set:{'name':'abc'}})#更新
{ "_id" : ObjectId("6005627b90411bd140ea36ce"), "id" : 1, "name" : "abc" }#更新后

#删除库及表
db.dropDatabase()#删除库注意需提前进入要删除的库中
db.User.drop()#删除表注意需提前进入对应的库中

导入导出:

#导入导出
mongoexport -d test -c User -o ./User.json #导出
mongoimport -d test -c User1 --file User.json #导入
参数说明:
	-d: 指明数据库名字
	-c: 指明collection的名字
	-f: 指明要导出那些列
	-o: 指明要导出的文件名
	-q: 指明导出数据的过滤条件
	具体命令帮助信息可以通过--help查看

备份恢复:

#备份
mkdir backup
mongodump -d test -o ./backup/
[root@localhost ~]# ll backup/*
总用量 16
-rw-r--r--. 1 root root  48 1月  18 18:49 User1.bson
-rw-r--r--. 1 root root 124 1月  18 18:49 User1.metadata.json
-rw-r--r--. 1 root root  48 1月  18 18:49 User.bson
-rw-r--r--. 1 root root 123 1月  18 18:49 User.metadata.json

#恢复
mongorestore -d test1 --dir=./backup/test/
参数说明:
	-d: 指明数据库名字
	-c: 指明collection的名字
    -h: 指定主机也可以同时指定端口
	-o: 指明要导出的文件名
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值