Mongodb6.0在CentOS7上安装实践

一、安装前需要安Linux平台依赖包。

 yum install libcurl openssl

二、创建以下文件夹,用来存放Mongodb的压缩包以及安装目的路径

 mkdir -p /opt/software

 mkdir -p /usr/local/mongodb

三、解压安装包到/usr/local/mongodb/

 tar -zxvf /opt/software/mongodb-linux-x86_64-rhel70-6.0.10.tgz -C /usr/local/mongodb/

四、添加Mongodb的bin路径到PATH

1、打开终端并以root用户身份登录,打开/etc/profile文件

vim /etc/profile

在文件的末尾添加以下行

export PATH=/usr/local/mongodb/mongodb-linux-x86_64-rhel70-6.0.10/bin:$PATH

保存并关闭文件

2、重新加载配置文件

source /etc/profile

3、检查环境变量是否已设置

echo $PATH

五、创建数据库目录

    数据存储目录:

  mkdir -p /var/mongodb/data

    日志文件目录:

mkdir -p /var/mongodb/log

六、启动 Mongodb 服务(--dbpath:数据路径 --logpath:日志路径 --port:端口 --fork:后台进程 --bind_ip_all:外网可以访问,否则无法通过浏览器访问27017端口

mongod --dbpath /var/mongodb/data --logpath /var/mongodb/log/mongod.log --port 27017 --bind_ip_all --fork   

七、关闭Mongodb服务

mongod --dbpath /var/mongodb/data --logpath /var/mongodb/log/mongod.log –shutdown

打开 tail -10f /var/mongodb/log/mongod.log 文件看到信息,说明启动成功。

执行 curl 192.168.154.130:27017 若出现It looks like you are trying to access MongoDB over HTTP on the native driver port.说明可以外网访问了

安全管理

默认情况下,启动的MongoDB没有登录密码,在生产环境中这是非常不安全的,但是不同于MySQL、Oracle等关系型数据库,MongoDB中每一个库都有独立的密码,在哪一个库中创建用户就要在哪一个库中验证密码。要配置密码,首先要创建一个用户,例如在admin库中创建一个用户,代码如下:

db.createUser({user:"zyf",pwd:"1203",roles:[{role:"readWrite",db:"zyf-db"}]})

新创建的用户名为 yf,密码是1203,roles表示该用户具有的角色,这里的配置表示该用户对zyf-db 库具有读和写两项权限。

用户创建成功后,关闭当前实例,然后重新启动;

./mongo

db.auth("suohechuan","123@456")

如果db.auth(“suohechuan”,“123@456”)命令执行结果为1,就表示认证成功,可以执行对zyf-db库的读写操作

windows启动mongodb,指定数据存储路径、log日志路径,以及访问端口号

mongod.exe --dbpath="D:\Program Files\MongoDB\Server\6.0\data" --logpath="D:\Program Files\MongoDB\Server\6.0\log\mongodb.log" --port=27018

#查看数据库

show dbs(或show databases)

#进入zyf-md数据库

user zyf-md

# 查看集合

show collections

#向数据库插入文档

db.<collection>.insert(doc)

db.tbl_user.insert({userName:"张延分",age:22,sex:"男"})

#查询当前集合的所有文档

db.tbl_user.find()

Mongodb语法练习


objectId()
db.user.find()
db.user.find({})
db.user.find({"userName":"张延分","_id":"a1234"})
db.user.findOne({"userName":"张延分"})
db.user.find().count()
db.user.find({}).length()

db.user.insert(
{
		"_id":"a1234",
    "userName": "张延分",
    "age": NumberInt("22"),
    "sex": "男"
}
)

db.user.insertOne(
{
    "userName": "张三",
    "age": 33,
    "sex": "女"
}
)
db.user.insertMany([
{
    "userName": "李四",
    "age": 33,
    "sex": "男"
},
{
    "userName": "王五",
    "age": 22,
    "sex": "女"
}])

//替换新对象
db.user.update({"_id":"a1234"},{"_id":"a1234","userName":"张延分2","age":NumberInt("22"),"sex":"男","childs":["张玉砚","张天尧"]})
//修改指定的字段(没有字段或自动添加),默认只会修改一个
db.user.update({"_id":"a1234"},{$set:{name:"张小杰",age:12}})
//删除指定的字段(字段内容无所谓)
db.user.update({"_id":"a1234"},{$unset:{name:"",age:12}})
//修改符合多个条件的文档
db.user.updateMany({"userName":"张延分"},{$set:{name:"猪八戒2",age:27}})
//修改符合条件的一个文档
db.user.updateOne({"userName":"张延分"},{$set:{name:"猪八戒21",age:27}})
//修改符合多个条件的文档(第三个参数)
db.user.update({"userName":"张延分"},{$set:{name:"猪八戒32",age:67}},{multi:true})

db.user.insertMany([
{
    "userName": "李四",
    "age": 33,
    "sex": "男",
		study:[{"kemu":"语文","chengji":"33"},{"kemu":"数学","chengji":"44"}],
		citys:["北京","上海","天津"],
		laopo:{"name":"蔡老师","sex":"女",childs:["玉砚","天尧"]}
		
},
{
		study:[{"kemu":"物理","chengji":"33"},{"kemu":"数学","chengji":"44"}],
		citys:["北京","上海","成都"],
		laopo:{"name":"蔡老师","sex":"女",childs:["张三","天尧"]}
		
}{
		study:[{"kemu":"物理","chengji":"33"},{"kemu":"数学","chengji":"44"}],
		citys:["北京","上海","成都"],
		laopo:{"name":"蔡老师","sex":"男",childs:["张三","天尧"]}
		
}
//嵌套文档查询
db.user.find({"userName":"李四"})
db.user.find({"study.kemu":"语文"})
db.user.find({"study.chengji":"33"})
db.user.find({"citys":"上海","study.kemu":"语文"})
//嵌套文档修改
db.user.update({"laopo.childs":"玉砚"},{$set:{age:66}},{multi:true})
db.user.update({"laopo.childs":"玉砚"},{$set:{"laopo.childs":["a","玉砚","c"]}},{multi:true})
db.user.update({"laopo.childs":"玉砚"},{$push:{"laopo.childs":"无敌"}},{multi:true})
db.user.update({"laopo.childs":"玉砚"},{$addToSet:{"study":{"kemu":"化学","chengji":"37"}}},{multi:true})
db.user.remove({"study.kemu":"化学"})


//清空集合的所有文档(性能很差,会一条条的删除)
db.user.remove({})
//删除符合条件的文档
db.user.remove({"userName":"aaa"})
//若跟上参数true,则删除符合条件的一条文档
db.user.remove({"userName":"aaa"},true)
//删除一个符合条件的文档
db.user.deleteOne({"userName":"aaa"})
//删除多个符合条件的文档
db.user.deleteMany({"userName":"aaa"})
//替换符合条件的一条文档
db.user.replaceOne({"userName":"aaa"}, {"userName":"bbb",age:22} )



//第一种插入方式3.9秒
for(var i=1;i<=20000;i++){
db.numbers.insert({"numberd":i})
};

//第二种插入方式 0.3秒
var arrs=[];
for(var i=1;i<=10;i++){
arrs.push({"numberd":i,"name":"z"})
};
db.numbers.insert(arrs);

//查询文档数量
db.numbers.find().count()
//删除所有文档
db.numbers.remove({})

//numberd小于6
db.numbers.find({"numberd":{$lt:6}})
db.numbers.find({"numberd":{$lte:6}})
//numberd大于19995
db.numbers.find({"numberd":{$gt:19995}})
db.numbers.find({"numberd":{$gte:19995}})
db.numbers.find({"numberd":{$gte:40,$lte:50}})
//查询 第三页的数据,每页显示10条,sort排序(1:正序,-1:倒序),find的第二个参数是投影的字段(1:显示;0:不显示)
db.numbers.find({},{"numberd":0}).skip((3-1)*10).limit(10).sort({numberd:-1,"_id":1})

//查询numberd小于6或者大于19995
db.numbers.find({$or:[{"numberd":{$lt:6}},{"numberd":{$gt:19995}}]})
//name为z的numberd增加100
db.numbers.updateMany({"name":"z"},{$inc:{numberd:100}})

附实践代码:https://download.csdn.net/download/zyf1203/89588809

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值