MongoDB之安装和基本使用(一)
环境
- ubuntu16.04
mongodb基本特点
MongoDB 是一个基于分布式 文件存储的NoSQL数据库;可以把MongoDB想象成一个大py字典。
- 模式自由 :可以把不同结构的文档存储在同一个数据库里
- 面向集合的存储:适合存储 JSON风格文件的形式
- 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
安装
apt安装
sudo apt update
sudo apt install mongodb
安装完毕后mongod已经自动启动了。
apt安装会自动创建相关的配置文件
/etc/mongod.conf # mongodb的启动配置文件
/var/log/mongodb/mongod.log # 日志文件
/var/lib/mongodb # 数据文件目录
安装后会自动启动,自动设置了开机自启动。
源码安装
sudo apt-get install libcurl3 openssl
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.0.0.tgz # 后面可以写不同的版本
# 解压
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.0.0.tgz
# 移动
mv mongodb-linux-x86_64-ubuntu1604-4.0.0.tgz /usr/local/mongodb
# 添加到环境变量
vi ~/.bashrc
export PATH=/usr/local/mongodb/bin:$PATH
- 源码安装需要自己去创建相关的配置文件。
卸载
# 移除所有相关的安装文件
sudo apt-get purge mongodb-org*
# 移除数据文件和日志文件
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
基本命令
# 默认监听端口port 27017
# 启动
sudo service mongodb start
# 停止
sudo service mongodb stop
# 重启
sudo service mongodb restart
# 客户端连接
mongo --host 127.0.0.1:27017
# 退出
exit
- 如果使用service命令报错:
Failed to stop mongodb.service: Unit mongodb.service not loaded.
需要手动添加mongodb.service
vi /etc/systemd/system/mongodb.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongodb/mongodb.pid
ExecStart=/usr/bin/mongod -f /etc/mongodb.conf --pidfilepath /var/run/mongodb/mongodb.pid --fork
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
基本数据库操作
# 基本命令
db # 查看当前的数据库,默认当前数据库为test
show dbs # 查看所有的数据库
use xxx # 切换数据库,如果不存在也进入,但只有在插入了数据后才会真正地创建
db.dropDatabase() # 删除当前指向的数据库
# 创建集合
db.createCollection(name, options) # 相当于mysql的表,创建集合
name:集合的名字
options:配置参数,一个json格式文档,如:{ capped : true, size : 10 },限制集合大小
# 查看集合
show collections
# 删除集合
db.xxx(集合name).drop()
# 插入,这个创建的集合插入许多的小的json文档,类似py的字典,每个字典有一个_id,如果不指定或自动分配。
db.xxx(集合name).insert({_id:xxx,name:"xxx"})
# 查询
db.xxx(集合name).find() # 会显示集合所有文档
# 更新
db.xxx(集合name).update(
<query>, # 查询条件,类似sql语句update中where部分
<update>, # 根据查询更新字段
{multi: <boolean>} # 默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新
)
# 保存,如果该_id存在则相当于update,如果不存在相当于insert
db.xxx(集合name).save({_id:xxx,name:"xxx"})
# 删除
db.xxx(集合name).remove(
<query>, # 查询条件
{
justOne: <boolean> # 如果设为true或1,则只删除一条,默认false,表示删除多条
}
)
数据的类型
- MongoDB和mysql一样有数据类型
Object ID:专门用于文档ID,是自动的,如果手动加文档ID,则为string类型。
String:字符串,最常用,必须是有效的UTF-8
Boolean:存储一个布尔值,true或false
Integer:整数可以是32位或64位
Double:存储浮点值
Arrays:数组或列表,多个值存储到一个键,如:{"color" : [ "red", "black" ]}
Object:用于嵌入式的文档,即一个值为一个文档,如一个图片二进制流,一篇文章
Null:存储Null值
Timestamp:时间戳
Date:存储当前日期或时间的UNIX时间格式
用户管理
mongodb默认是没有用户的,也就是说一开始是完全暴露的,可以在admin数据库中创建root用户。
- 用户的类型
root:只在admin数据库中可用,超级账号,超级权限
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
- 创建root用户
use admin
db.createUser({
user:'admin',
pwd:'123456',
roles:[{role:'root',db:'admin'}]
})
- 启动登录验证
# 修改配置文件/etc/mongodb.conf
# 去除注释
auth=true
# 重启mongodb
service mongoodb stop
service mongoodb start
# 输入mongo仍然可以进入数据库,但是对admin数据库没有访问权限
- 用户的登录验证
# 方法一:连接时验证
mongo -u 'admin' -p '123' --authenticationDatabase 'admin'
# 方法二:连接后验证
user admin
db.auth("admin", "123456")
- 创建普通用户
# 在任何一个位置进行操作都可以,不一定要在admin数据库下执行创建操作
db.createUser({
user:'cwp',
pwd:'passwd',
roles:[{role:'readWrite',db:'test1'}]
})
- 修改用户属性
db.updateUser('t1',{pwd:'456',roles:[{role:'Read'}]})
数据备份与恢复
# 备份数据
mongodump -h dbhost -d dbname -o dbdirectory
-h:服务器地址,也可以指定端口号,127.0.0.1:27017
-d:需要备份的数据库名称
-o:备份的数据存放位置,此目录中存放着备份出来的数据
# 恢复数据
mongorestore -h dbhost -d dbname --dir dbdirectory
-h:服务器地址
-d:需要恢复的数据库实例
--dir:备份数据所在位置
允许远程连接
vi /etc/mongodb.conf
#允许局域网连接
bind_ip=127.0.0.1,192.168.1.2
# 允许公网连接
bind_ip=127.0.0.1,192.168.1.2,公网ip
MongoDB之安装和基本使用(一)的更多相关文章
- MongoDB下载安装与简单增删改查
Windows下MongoDB的安装和配置.启动和停止 下载地址:MongoDB的官方下载网址是:https://www.mongodb.org/downloads 安装步骤1. 点击下载的mongo ...
- MongoDB的安装与设置MongoDB服务
Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB ...
- Linux下MongoDB服务安装
Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...
- MongoDB学习-安装流程
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型. ...
- mongodb(二) 安装和使用
mongodb的安装和使用 最近的项目需要使用到mongodb,从而开始熟悉nosql,有了本篇文章,记录和方便他人. mongodb的安装 下载地址:http://www.mongodb.org/d ...
- MongoDB的安装及配置
MongoDB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐. Windows (1). 登录Mongodb官网点击下载 (2). 将zi ...
- MongoDB的安装 转
第1章 MongoDB的安装 (黎明你好原创作品,转载请注明) 1.1 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写,旨在为WEB应用提供可护展的高性能 ...
- MongoDB的安装,配置与开机自启动
关于简介不多说百度去吧少年.. MongoDB详细安装: 1.进入官网,点击DOWNLOAD MONGODB,下载所需要的版本.. 我这里把下载的文件放在d\MongoDB文件夹下,点击下载的官方镜像 ...
- MongoDB(二)——安装配置了解
前边介绍了MongoDB的大概理论知识,这篇来对MongoDB进行一下安装使用,支持安装在windows和linux上,当然了很多其它情况下我们是安装在linux上,由于毕竟server用linux的 ...
- MongoDB本地安装与启用(windows )
MongoDB的安装与MongoDB服务配置 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了 ...
随机推荐
- ADOQuery的ltBatchOptimistic状态下的用法
在ADO的ltBatchOptimistic状态下(即缓存状态),如何实现单条记录的删除与修改,也可以选择的删除或修改? 一样的删除,只是最后提交方式不一样,以前的提交最后加上try ADOCon ...
- LoadRunner脚本增强技巧之自动关联
为什么要做关联,原理很简单,录制脚本的时候,服务器会给用户一个唯一的认证码来进行操作,当再次回放脚本的时候服务器又会给一个全新的认证码,而录制好的脚本是写死的,还是拿老的认证码提交,肯定会导致脚本执行 ...
- python判断字符串是否包含子字符串
python的string对象没有contains方法,不可以使用string.contains的方法判断是否包含子字符串,但是python有更简单的方法来替换contains函数 python的st ...
- 【前端学习笔记】函数定义、函数调用、this
函数定义的三种方式与特点: 1.函数声明:(特点:会被前置:重复定义函数时,最后一次定义有效.) 2.函数表达式: 3.函数实例化:(特点:只能访问本地作用域与全局作用域!!!) /* 对象实例化定义 ...
- Python环境安装(Windows环境)
近半年来一直在用Python处理手头的工作.想想,Python确实是一门比较强大的语言,容易上手且功能强大, 基本上想做的工作都能找到别人提供的包. 目前主要在windows系统上办公,这里把wind ...
- BZOJ 2004 公交线路(状压DP+矩阵快速幂)
注意到每个路线相邻车站的距离不超过K,也就是说我们可以对连续K个车站的状态进行状压. 然后状压DP一下,用矩阵快速幂加速运算即可. #include <stdio.h> #include ...
- BZOJ 1444 有趣的游戏(AC自动机+矩阵快速幂)
真的是很有趣的游戏... 对每个单词构建好AC自动机后,由于单词都是相同长度的且不同,所以不会出现互相为子串的形式. 那么我们对AC自动机上的节点构建转移矩阵.对于每个单词末尾的节点.该节点的出边仅仅 ...
- Linux进入单用户模式(passwd root修改密码)
进入单用户模式——passwd root修改密码 1.在grub 页面输入a,进入修改内核模式 2.在内核的结尾“/”,输入空格,在输入single,回车 3.启动系统,进入单用户模式 4.Passw ...
- 黑客帝国雨效果JS
黑客帝国雨效果JS. <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- QT模态对话框及非模态对话框
QT模态对话框及非模态对话框 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对 ...