mongoDB 安装简介+入门教程(mongod+mongo +shell命令+CURD)

参考文档
mongoDB 安装简介
简明 MongoDB 入门教程

推荐阅读 SpringBoot+MongoDB 实现简单CURD

MongoDB 简介

MongoDB 是免费开源的跨平台 NoSQL 数据库,命名源于英文单词 humongous,意思是「巨大无比」,可见开发组对 MongoDB 的定位。与关系型数据库不同,MongoDB 的数据以类似于 JSON 格式的二进制文档存储:

{
    name: "Angeladady",
    age: 18,
    hobbies: ["Steam", "Guitar"]
}
{
        "_id" : ObjectId("6206690607d73966f9177c69"),
        "name" : "Chen1fa",
        "age" : 18
}
{
        "_id" : ObjectId("6206691807d73966f9177c6a"),
        "name" : "Xiaose",
        "age" : 35,
        "license" : "A"
}
{ "_id" : 91, "name" : "Sun1feng", "age" : 34, "license" : "A" }

安装流程

下载安装包

cd /usr
mkdir mongodb
cd mongodb
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.4.6.tgz

解压

tar -zvxf mongodb-linux-x86_64-amazon-3.4.6.tgz 

在这里插入图片描述

将 mongoDB 命令添加到环境变量:

export path=$path:/usr/mongodb/mongodb-linux-x86_64-amazon-3.4.6/bin/
vi ~/.bashrc
# 在文档末尾添加
export PATH="$PATH:/usr/mongodb/mongodb-linux-x86_64-amazon-3.4.6/bin/"
#刷新
source ~/.bashrc

启动实例 mongod

启动之前,新建一个目录来存放 mongoDB 的数据和日志:

mkdir mongoDB_example
cd mongoDB_example
mkdir bin data conf log
mkdir data/db
touch log/mongodb.log
#更改权限
chmod -R 777 ./

在项目目录中,使用 mongod 命令来启动 mongoDB 进程:

错误命令

mongod --fork --port 12345 --dbpath data\db  --logpath log/mongodb.log

注意上面命令有问题,会报错 shutting down with code:100 ,启动失败
在这里插入图片描述

# exception in initAndListen: 29 Data directory /usr/mongodb/mongoDB_example/datadb not found., terminating

日记可以log文件下查看

问题是在 --dbpath data\db 应该改为 --dbpath data/db

mongod --fork --port 12345 --dbpath data/db  --logpath log/mongodb.log

启动成功

在这里插入图片描述

ps aux | grep mongod

在这里插入图片描述

配置文件启动实例

vi conf/mongodb.conf
#添加下面值
port = 12345
dbpath = data
logpath = log/mongodb.log
fork = true

临时关闭实例

kill -2 118811

然后再重新启动 mongoDB:

mongod -f conf/mongodb.conf

连接实例 mongo

通过 mongo 命令来连接 mongoDB 实例:

mongo 127.0.0.1:12345

在这里插入图片描述

也可以通过浏览器访问,判断是否启动成功
http://192.168.25.130:12345/
在这里插入图片描述

数据库 CRUD 操作

常用的 shell 操作:

db 显示当前所在数据库,默认为 test
show dbs 列出可用数据库
show tables show collections 列出数据库中可用集合
use <database> 用于切换数据库

mongoDB 预设有两个数据库,admin 和 local,admin 用来存放系统数据,local 用来存放该实例数据,在副本集中,一个实例的 local 数据库对于其它实例是不可见的。使用 use 命令切换数据库:

use admin
use local
use newDatabase

可以 use 一个不存在的数据库,当你存入新数据时,mongoDB 会创建这个数据库:

use newDatabase
db.newCollection.insert({x:1})
#WriteResult({ "nInserted" : 1 })

以上命令向数据库中插入一个文档,返回 1 表示插入成功,mongoDB 自动创建 newCollection 集合和数据库 newDatabase。

下面将创建一个 drivers 集合,进行增查改删操作 CURD。

db.drivers.insert({name:"Chen1fa",age:18})
db.drivers.insert({name:"Xiaose",age:35})
db.drivers.insert({_id:91,name:"Sun1feng",age:34})

show tables show collections 
#显示下面两个可用集合
#drivers
#newCollection
db.drivers.find().count()
#3
db.drivers.find({name: "Xiaose"})
#按name查询
#{ "_id" : ObjectId("6206691807d73966f9177c6a"), "name" : "Xiaose", "age" : 35 }
db.drivers.find({age:{$gt:20}}) db.drivers.find({age:{$gt:20}}) 
#年龄超过20的
#{ "_id" : ObjectId("6206691807d73966f9177c6a"), "name" : "Xiaose", "age" : 35 }
#{ "_id" : 91, "name" : "Sun1feng", "age" : 34 }
db.drivers.find().skip(1).limit(10).sort({age:1})
#按年龄查询,跳过第一条
#{ "_id" : 91, "name" : "Sun1feng", "age" : 34 }
#{ "_id" : ObjectId("6206691807d73966f9177c6a"), "name" : "Xiaose", "age" : 35 }
db.drivers.find().pretty()
#查询所有,提升查询文档的易读性
{
        "_id" : ObjectId("6206690607d73966f9177c69"),
        "name" : "Chen1fa",
        "age" : 18
}
{
        "_id" : ObjectId("6206691807d73966f9177c6a"),
        "name" : "Xiaose",
        "age" : 35
}
db.drivers.update({age:{$gt:25}},{$set:{license:'A'}},{multi: true})
#依据查询条件更新
#WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
db.drivers.remove({name:"Xiaose1"})
#依据查询条件删除
#WriteResult({ "nRemoved" : 0 })

关闭实例

use admin
db.shutdownServer()
exit

在这里插入图片描述

结语

上述,我们启动了一个不安全的 MongoDB 实例,应用到生产环境中,还需要了解 MongoDB 的安全机制,了解如何建立索引提升数据库的读写速度。随着数据的增长,需要了解副本集技术如何将多个实例部署到不同的服务器、了解分片技术对数据库进行横向扩展。为保证服务器性能和安全,需要了解如何对 MongoDB 进行测试和监控…

「冰封三尺,非一日之寒」,同样,要想完全掌握 MongoDB 还有很长的路要走。愿戒骄戒躁,在学习的路上,与君共勉。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值