共计 4419 个字符,预计需要花费 12 分钟才能阅读完成。
一、下载安装
1.1 下载 MongoDB
首先,从 MongoDB 官网下载本人想要应用的版本。
解压缩下载的压缩包重命名为 mongodb,将 mongodb 文件夹复制到 /usr/local 目录下。
当然,除了下面的装置形式外,咱们还能够应用 Mac OSX 的 brew 来进行装置,装置的命令如下:
brew tap mongodb/brew
brew install mongodb-community@4.4
1.2 配置环境变量
关上.zshrc 文件,若没有此文件能够创立一个
open ~/.zshrc // 关上
touch .zshrc // 创立
把 MongoDB 的二进制命令文件目录(装置目录 /bin)增加到 PATH 门路中
export PATH=${PATH}:/usr/local/mongodb/bin
编辑实现后保留并退出,而后应用 source .zshrc 命令使配置立刻失效。
1.3 创立日志及数据目录
在 /usr/local/mongodb 目录下新建两个文件夹 data 和 log,用于存储 MongoDB 的数据和日志。
// 新建 data 和 log 文件夹
sudo mkdir -p /usr/local/mongodb/data
sudo mkdir -p /usr/local/mongodb/log
// 调配读写权限
sudo chown xzh /usr/local/mongodb/data
sudo chown xzh /usr/local/mongodb/log
其中,xzh 为以后的用户名,您须要批改为您本人的零碎用户名。接下来,咱们须要配置零碎环境变量。
1.4 启动 MongoDB 服务
实现配置后,应用上面的命令来启动 MongoDB 服务。
mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mongo.log --fork
参数的阐明如下:
- –dbpath 用来设置数据的寄存目录
- –logpath 用来设置日志的寄存目录
- –fork 用来设置在后盾运行
最初,咱们应用 mongod -version 命令来验证 MongoDB 是否装置胜利,如果呈现相似上面所示的内容,则阐明 MongoDB 装置胜利。
db version v6.0.4
Build Info: {
"version": "6.0.4",
"gitVersion": "44ff59461c1353638a71e710f385a566bcd2f547",
"modules": [],
"allocator": "system",
"environment": {
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
不过,每次开机都要输出一长串的命令启动 mongodb 是非常麻烦的,咱们能够应用配置文件的形式来启动。首先,在根目录下新建一个 conf 文件夹,并新建一个 mongod.conf,配置内容如下:
# 数据库门路
dbpath=/usr/local/mongodb/data
# 日志输入文件门路
logpath=/usr/local/mongodb/log/mongo.log
# 谬误日志采纳追加模式
logappend=true
# 启用日志文件,默认启用
journal=true
# 过滤一些无用的日志信息,若须要调试设置为 false
# quite=true
# 端口号 默认为 27017
port=27017
# 是否须要校验,测试环境能够敞开,生产环境则须要关上
# auth=true
# 注册服务,这样就能够保障电脑启动服务就能够应用,防止每次敞开后还须要重新启动服务
fork=true
而后,应用配置好的文件进行启动。
mongod --config /usr/local/mongodb/conf/mongo.conf
留神,应用 mongod –config 启动时,前面跟的是 mongo.conf 文件的命令。启动胜利之后,会输入如下的提醒。
about to fork child process, waiting until server is ready for connections.
forked process: 3178
child process started successfully, parent exiting
接着,咱们输出 mongo 命令就能够进入命令行中的编辑区,如下图。
二、可视化工具 Studio 3T
通常,间接操作 MongoDB 体验并不是很敌对,所以在理论应用过程中,咱们须要装置一些可视化的操作工具,比方 Studio 3T。首先,下载 Studio 3T。
下载完后间接装置 Studio 3T,而后关上并连贯 MongoDB 数据库。
此次连贯的是本地的 MongoDB,所以 Server 填写 localhost,端口默认为 27017。
三、MongoDB 罕用语法
3.1 基本操作
SQL 与 MongoDB 比照
数据库操作
- 创立数据库:use demo
- 查看数据库:show dbs
- 删除数据库:db.dropDatabase()
汇合(表)操作
- 创立汇合:db.createCollection(name)
- 查看汇合:show collections
- 删除汇合:db.collection.drop()
文档操作
- 创立文档:db.collection.insertOne({})、db.collection.insertMany([])
- 查看文档:db.collections.find({})
- 删除文档:db.collection.deleteOne()、db.collection.deleteMany()
- 更新文档:db.collection.update({},{},false,true)
3.2 应用示例
接着,咱们应用上文提到的命令来简略的创立一个数据库,并对表中的数据进行 CRUD 操作。
查看数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
创立数据库
> use demo
switched to db demo
创立汇合
> db.createCollection("users")
{"ok" : 1}
查看汇合
> show collections
users
创立空文档
> db.users.insertOne({})
{
"acknowledged" : true,
"insertedId" : ObjectId("62d917201c77c8032f399201")
}
创立文档并增加数据
> db.users.insertOne({userId: 1, userName:'Han Qiao', age: 30, score:300})
{
"acknowledged" : true,
"insertedId" : ObjectId("62d9173f1c77c8032f399202")
}
创立文档并增加多条数据
> db.users.insertMany([{userId: 2, userName:'Jack', age: 40, score:400},{userId: 3, userName:'Henry', age: 50, score:200}])
{
"acknowledged" : true,
"insertedIds" : [ObjectId("62d917951c77c8032f399203"),
ObjectId("62d917951c77c8032f399204")
]
}
查看文档
> db.users.find()
{"_id" : ObjectId("62d917201c77c8032f399201") }
{"_id" : ObjectId("62d9173f1c77c8032f399202"), "userId" : 1, "userName" : "Han Qiao", "age" : 30, "score" : 300 }
{"_id" : ObjectId("62d917951c77c8032f399203"), "userId" : 2, "userName" : "Jack", "age" : 40, "score" : 400 }
{"_id" : ObjectId("62d917951c77c8032f399204"), "userId" : 3, "userName" : "Henry", "age" : 50, "score" : 200 }
删除指定文档
> db.users.deleteOne({"_id" : ObjectId("62d917201c77c8032f399201") })
{"acknowledged" : true, "deletedCount" : 1}
> db.users.find()
{"_id" : ObjectId("62d9173f1c77c8032f399202"), "userId" : 1, "userName" : "Han Qiao", "age" : 30, "score" : 300 }
{"_id" : ObjectId("62d917951c77c8032f399203"), "userId" : 2, "userName" : "Jack", "age" : 40, "score" : 400 }
{"_id" : ObjectId("62d917951c77c8032f399204"), "userId" : 3, "userName" : "Henry", "age" : 50, "score" : 200 }
条件查找
> db.users.find({age:{$gt:35}})
{"_id" : ObjectId("62d917951c77c8032f399203"), "userId" : 2, "userName" : "Jack", "age" : 40, "score" : 400 }
{"_id" : ObjectId("62d917951c77c8032f399204"), "userId" : 3, "userName" : "Henry", "age" : 50, "score" : 200 }
更新文档,将 age 大于 45 的 score 更新为 600
> db.users.update({age:{$gt:45}},{$set:{score:600}})
WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified" : 1})
> db.users.find()
{"_id" : ObjectId("62d9173f1c77c8032f399202"), "userId" : 1, "userName" : "Han Qiao", "age" : 30, "score" : 300 }
{"_id" : ObjectId("62d917951c77c8032f399203"), "userId" : 2, "userName" : "Jack", "age" : 40, "score" : 400 }
{"_id" : ObjectId("62d917951c77c8032f399204"), "userId" : 3, "userName" : "Henry", "age" : 50, "score" : 600 }
当然,咱们也能够关上 Studio 3T,应用 Studio 3T 来对数据进行操作,如下图。