MongoDB提供了许多linux发行版本的安装包,可直接去官方网站进行下载:MongoDB
下载之前,需要安装相关依赖
需要放行防火墙端口或关闭防火墙(MongoDB默认端口:27017),关闭selinux
Red Hat/CentOS:
shyum install -y libcurl openssl
Ubuntu 18.04 LTS ("Bionic")/Debian 10 "Buster":
shapt-get install libcurl4 openssl
Ubuntu 16.04 LTS ("Xenial")/Debian 9 "Stretch":
shsudo apt-get install libcurl3 openssl
注意:mongo v5版本以上系统需支持AVX指令集,请查看系统版本再选择安装
服务器版本 | MongoDB版本 |
---|---|
CentOS 7 | mongodb-4.2.25 |
在官方网站选择所需要下载的tgz复制link:
安装
shwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.25.tgz
# 解压到指定路径/usr/local
tar zxvf mongodb-linux-x86_64-rhel70-4.2.25.tgz -C /usr/local
# 修改名称
mv mongodb-linux-x86_64-rhel70-4.2.25/ mongodb-4.2.25
# 配置环境变量,在最下方添加语句
vim /etc/profile
export PATH=export PATH=/usr/local/mongodb-4.2.25/bin:$PATH
# 更新环境变量
source /etc/profile
MongoDB需要两个目录
sh# 创建目录
mkdir -p /var/lib/mongo
mkdir -p /var/log/mongod
进入MongoDB所在bin目录下
sh# 进入MongoDB所在bin目录
cd /usr/local/mongodb-4.2.25/bin
# 启动MongoDB服务
./mongod --dbpath /var/lib/mongo --logpath /var/log/mongod/mongod.log --fork
在任何地方输入mongo即可进入数据库
创建数据库
sql-- 如果数据库不存在,则创建数据库,否则进入数据库
-- 创建一个 chuntian 的数据库
> use chuntian
switched to db chuntian
-- db 为查看当前数据库
> db
chuntian
-- 查看所有数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
-- -- 创建的数据库 chuntian 并不在数据库的列表中, 要显示它,需要向 chuntian 数据库插入一些数据
> db.chuntian.insertOne({"name":"春天"})
{
"acknowledged" : true,
"insertedId" : ObjectId("6628c5de0dbc76d4ed029024")
}
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
chuntian 0.000GB
删除数据库
sql-- 删除当前数据库,默认删除 test
db.dropDatabase()
-- 删除 chuntian 数据库
> show dbs
admin 0.000GB
chuntian 0.000GB
config 0.000GB
local 0.000GB
> db
chuntian
> db.dropDatabase()
{ "dropped" : "chuntian", "ok" : 1 }
集合类似MySQL数据库中的表
创建集合
sqldb.createCollection(name,options)
参数说明:
options 如下参数:
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。 |
autoIndexId | 布尔 | 3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值,即字节数。 如果 capped 为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。 |
sql-- 在 chuntian 数据库中创建 omm 集合
> use chuntian
switched to db chuntian
> db.createCollection("omm")
{ "ok" : 1 }
-- 查看集合,也可以使用show collections
> show tables
omm
关键参数的用法
sql-- 创建固定集合 cmd,整个集合空间大小 3141592 B,文档最大个数为1000个
> db.createCollection("cmd", { capped : true, autoIndexId : true, size : 3141592, max : 1000 } )
{
"note" : "the autoIndexId option is deprecated and will be removed in a future release",
"ok" : 1
}
> show tables
mycol
omm
在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合
sql> db.cmd2.insert({"name":"春天"})
WriteResult({ "nInserted" : 1 })
> show tables
cmd2
cmd
omm
删除集合
如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。
sql-- 删除 cmd 集合
> show tables
cmd2
cmd
omm
> db.cmd.drop()
true
> show tables
cmd2
omm
文档相当于MySQL数据库中的数据
文档的数据结构和 JSON 基本一致
插入文档
sql-- 在 chuntian 数据库中 omm 集合中插入文档
> db.omm.insert({title: 'Mongo文档插入',
description: 'Mongo数据库',
by: '春天',
url: 'https://blog.tenchuntian.cn/',
tags: ['mongodb','databaes','sql'],
likes: 100})
> WriteResult({ "nInserted" : 1 })
-- 查看文档
> db.omm.find()
{ "_id" : ObjectId("6628d1f7489aab02f9134a18"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }
更新文档
update()方法:
update()方法用于更新已存在的文档
sql-- 语法
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
通过 update() 方法来更新标题(title):
sql> db.omm.update({'title':'Mongo文档插入'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
-- 查看是否更新成功
> db.omm.find()
{ "_id" : ObjectId("6628d1f7489aab02f9134a18"), "title" : "MongoDB", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }
删除文档
sql-- 插入两次文档
> db.omm.find()
{ "_id" : ObjectId("6628d1f7489aab02f9134a18"), "title" : "MongoDB", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }
{ "_id" : ObjectId("6628d674489aab02f9134a19"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }
-- 删除title为'MongoDB'的文档
> db.omm.remove({'title':'MongoDB'})
WriteResult({ "nRemoved" : 1 })
-- 再次查看只剩一个文档了
> db.omm.find()
{ "_id" : ObjectId("6628d674489aab02f9134a19"), "title" : "Mongo文档插入", "description" : "Mongo数据库", "by" : "春天", "url" : "https://blog.tenchuntian.cn/", "tags" : [ "mongodb", "databaes", "sql" ], "likes" : 100 }
-- 删除所有数据
> db.omm.remove({})
WriteResult({ "nRemoved" : 1 })
> db.omm.find()
>
查询文档
find()语法如下:
sqldb.collection.find(query, projection)
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法:
sql> db.omm.find().pretty()
{
"_id" : ObjectId("6628d7da489aab02f9134a1a"),
"title" : "Mongo文档插入",
"description" : "Mongo数据库",
"by" : "春天",
"url" : "https://blog.tenchuntian.cn/",
"tags" : [
"mongodb",
"databaes",
"sql"
],
"likes" : 100
}
find()可以传入多个条件,每个条件用逗号隔开:
sql-- 两个文档
> db.omm.find().pretty()
{
"_id" : ObjectId("6628d7da489aab02f9134a1a"),
"title" : "Mongo文档插入",
"description" : "Mongo数据库",
"by" : "春天",
"url" : "https://blog.tenchuntian.cn/",
"tags" : [
"mongodb",
"databaes",
"sql"
],
"likes" : 100
}
{
"_id" : ObjectId("6628d884489aab02f9134a1b"),
"title" : "MongoDB",
"description" : "Mongo数据库",
"by" : "春天",
"url" : "https://blog.tenchuntian.cn/",
"tags" : [
"mongodb",
"databaes",
"sql"
],
"likes" : 100
}
-- 查看 title 为'MongDB'的文档
> db.omm.find({'title':'MongoDB'}).pretty()
{
"_id" : ObjectId("6628d884489aab02f9134a1b"),
"title" : "MongoDB",
"description" : "Mongo数据库",
"by" : "春天",
"url" : "https://blog.tenchuntian.cn/",
"tags" : [
"mongodb",
"databaes",
"sql"
],
"likes" : 100
}
持续更新中
//内容参考:菜鸟教程
本文作者:春天y
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!