一、下载安装

1.1 下载MongoDB

首先,从MongoDB官网下载本人想要应用的版本。

解压缩下载的压缩包重命名为mongodb,将mongodb文件夹复制到/usr/local目录下。


当然,除了下面的装置形式外,咱们还能够应用Mac OSX的brew来进行装置,装置的命令如下:

brew tap mongodb/brewbrew 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/datasudo mkdir -p /usr/local/mongodb/log//调配读写权限sudo chown xzh /usr/local/mongodb/datasudo 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.4Build 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# 端口号 默认为27017port=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: 3178child 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 dbsadmin   0.000GBconfig  0.000GBlocal   0.000GB

创立数据库

> use demoswitched to db demo

创立汇合

> db.createCollection("users"){ "ok" : 1 }

查看汇合

> show collectionsusers

创立空文档

> 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来对数据进行操作,如下图。