Mongodb安装
Linux下安装(Centos)
1、下载源码包,下载地址:https://www.mongodb.com/try/download/community
2、传输到linux并解压
tar -zxvf 源码包
解压后得到一个mongodb文件夹,内部基本结构:
(可选)将bin文件夹加入到环境变量中,方便以后操作。环境变量添加参考文章。
(可选)修改Mongodb配置信息,可在任意位置建立xxx.conf文件,在其内部进行配置。
# 创建配置文件
vim mongodb.conf
# 配置文件内部
# 常用配置命令
dbpath = /usr/local/mongodb/data/db #数据文件存放目录,一般都在mongodb根目录下创建个data文件夹
logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录,一般都在mongodb根目录下创建log文件夹并在其中创建日志文件。
port = 27017 #端口,监听端口
bind_ip=0.0.0.0 # 远程登录,指定为0.0.0.0代表所有ip都可以登录
3、启动mongodb服务:
# 需要cd到bin目录下
# 无配置文件启动
mongod
# 含配置文件启动
mongod -f mongodb.conf
# 关闭
mongod --shutdown
# 含配置文件关闭
mongod -f mongodb.conf --shutdown
(可选)安装mongodb服务:
在/lib/systemd/system文件夹下新建一个xx.service文件表示你的mongodb服务,编辑文件内部内容:
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=/usr/mongodb/bin/mongod -f /usr/mongodb/mongodb.conf
ExecStop=/usr/mongodb/bin/mongod --shutdown -f /usr/mongodb/mongodb.conf
PrivateTmp=false
[Install]
WantedBy=multi-user.target
其中ExecStart代表启动命令,ExecStop代表停止命令,其中所有涉及到文件夹操作都要用绝对路径表示。
服务操作:
# 开启
systemctl start mongodb.service
# 关闭
systemctl stop mongodb.service
# 开机启动
systemctl enable mongodb.service
Mongodb基本命令
数据库相关
1、切换到对应数据库,没有则创建并切换。
use 数据库名称
2、查看数据库
show dbs
3、删除数据库
# 删除当前数据库
db.dropDatabase()
集合相关
定义操作
mongodb里的集合就相当于关系数据中的表。
1、创建集合
db.createCollection(集合名称, 集合参数)
集合参数可以是:
字段 | 类型 | 描述 |
---|---|---|
capped | boolean | 如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数 |
autoIndexId | boolean | 3.2 之后不再支持该参数。如为 true,自动在 _id 字段创建索引。默认为 false |
size | int | 为固定集合指定一个最大值,即字节数 |
max | int | 指定固定集合中包含文档的最大数量 |
2、显示所有集合
show collections
3、删除集合
db.集合名称.drop()
数据操作
1、向集合中插入数据(文档)
向集合中插入的数据结构称之为文档。一个文档的结构与json数据类似。
# 插入一条数据,如果插入的文档的主键存在,那么会报错
db.集合名称.insert(document)
# 示例
db.collection1.insert({"id":1])
# 新版本操作
# 插入1个
db.集合名词.insertOne(document, {writeConcern:int, ordered:boolean})
# 插入多个
db.集合名词.insertMany([document1, document2....documentn],{writeConcern:int, ordered:boolean})
参数说明:
document:要写入的文档。
writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
ordered:指定是否按顺序写入,默认 true,按顺序写入。
2、查询文档
db.集合名称.find(query, projection)
# 格式化打印,按照json格式打印
db.集合名称.find(query, projection).pretty()
参数说明:
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
操作 | 格式 | 范例 | 对应sql语句 |
---|---|---|---|
等于 | {key:value} | db.col.find({“id”:“123”}) | where id = ‘123’ |
小于 | {key:{$lt:value}} | db.col.find({“id”:{$lt:50}}) | where id < 50 |
小于或等于 | {key:{$lte:value}} | db.col.find({“id”:{$lte:50}}) | where id <= 50 |
大于 | {key:{$gt:value}} | db.col.find({“id”:{$gt:50}}) | where id > 50 |
大于或等于 | {key>:{$gte:value}} | db.col.find({“id”:{$gte:50}}) | where id >= 50 |
不等于 | {key:{$ne:value}} | db.col.find({“id”:{$ne:50}}) | where id != 50 |
and | {key1:value1, key2:value2} | db.col.find({“id”:50, “id1”:12}) | where id = ‘50’ and id1 = 12 |
or | {$or:[{key1:value1}, {key2:value2}]} | db.col.find({$or:[{“id”:50},{“id1”:12}]}) | where id = ‘50’ or id1 = 12 |
3、更新文档
db.collection.update(
要传入的文档数据,
更新条件(查看查询条件),
{
参数
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如
,
,
,inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
4、删除文档
db.collection.remove(
删除条件(查看查询条件),
{
参数
}
)
参数说明:
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。