- 携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情
1. 下载源码包
执行命令安装Mongodb
所需依赖
sudo yum install libcurl openssl
下载源码包,官网地址:MongoDB
我这里选择linux版本最新6.0.0的,下载命令如下
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.0.tgz
解压
tar -zxvf mongodb-linux-x86_64-rhel70-6.0.0.tgz
将解压包拷贝到指定目录
mv mongodb-linux-x86_64-rhel70-6.0.0 /usr/local/mongodb
2. 配置环境变量
执行命令:
vi /etc/profile
在最下面添加配置内容
export MONGODB_HOME=/usr/local/mongodb // mongdb安装的目录
export PATH=$PATH:$MONGODB_HOME/bin
刷新环境变量
source /etc/profile
3. 安装Mongodb
创建data文件夹用于后续数据库信息保存
cd /usr/local/mongodb
mkdir data
创建log文件用于保存数据库日志,这里创建的是文件,不然启动时会报错。
touch log
4. 修改mongodb配置文件
cd /usr/local/mongodb/
mkdir config
cd config
设置配置文件
vi mongod.conf
写入以下内容
storage:
dbPath: "/usr/local/mongodb/data"
systemLog:
destination: file
path: "/usr/local/mongodb/log"
logAppend: true
net:
port: 27017
bindIp: 0.0.0.0
processManagement:
fork: true
5. 启动mongodb
执行启动命令,在上面的配置文件目录下
mongod --config mongod.conf
启动完成后访问ip+端口,如:
http://127.0.0.1:27017
页面展示上图内容即为成功
6. 使用mongodb
安装好后了进行调试一下,使用Nosql
客户端或者带有Mongodb
可连接的Navicat
客户端连接我们安装好的服务端,默认是没有密码的
建立连接完成后就需要执行mongodb的各项操作了
- 创建数据库
# 使用命令行执行以下命令创建demo数据库
use demo
- 删除数据库
# 切换到demo数据库
use demo
# 执行删除命令
db.dropDatabase()
- 创建集合
# 创建test集合
db.createCollection('test')
上面是创建个默认的集合,集合的可选参数是options参数定义的
options 可以是如下参数:
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。 |
autoIndexId | 布尔 | 3.2 之后不再支持该参数。 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值,即字节数。如果 capped 为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。 |
- 创建固定集合mycol
# 整个集合空间大小 6142800 B, 文档最大个数为 10000 个。
db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
- 删除集合
db.[集合名称].drop()
- 新增数据
save
# 如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
db.[集合名称].save(document)
- 新增数据
insert
# 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。
db.[集合名称].insert(document)
- 更新数据
update
db.[集合名称].update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
query
: update的查询条件,类似sql update查询内where后面的。update
: update的对象和一些更新的操作符(如inc...)等,也可以理解为sql update查询内set后面的upsert
: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。multi
: 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。writeConcern
:可选,抛出异常的级别。
- 删除数据
remove
db.[集合名称].remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
query
:(可选)删除的文档的条件。justOne
: (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。writeConcern
:(可选)抛出异常的级别。
- 查询数据
find
db.[集合名称].find(query, projection).pretty()
参数说明:
query
:可选,使用查询操作符指定查询条件projection
:可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。