离开mysql一会,带你玩玩mongodb


为什么会出现

传统的关系型数据库,可以满足我们的日常开发了,
mysql相比我们这次的mongodb,mongodb有以下几点好处:问题:

  1. mysql是个全量的,默认情况下是不支持分片的,需要借助mycat,等第三方技术。mongodb天生就是分片的,支持副本的。
  2. 动态特性:插入数据的时候,如下图
    我之前可能是没有昵称,
    在这里插入图片描述
    我可以动态扩展。
    在这里插入图片描述

    在这里插入图片描述

本质上mongodb是用的json的形式的,学起来还是很简单的,学完mongodb,再去看es就基本触类旁通了


一、Linux系统下安装mongodb

官网下载好
在这里插入图片描述

  1. 传到我们的Linux系统上,
    在这里插入图片描述
    进入到目录,运行如下命令: tar -zxvf mongodb-linux-i686-3.2.13-rc0.gz -C

  2. 创建文件夹/usr/local/mongodb/,把它挪到我们的文件夹中

  3. 同时创建data,logs目录在这里插入图片描述

  4. 创建配置文件
    在这里插入图片描述

dbpath = /usr/local/mongodb/data/db
logpath = /usr/local/mongodb/logs/mongodb.log
port=27017
auth=true
fork=true
bind_ip=0.0.0.0

注意bind_ip=0.0.0.0是我自己在虚拟机上玩的,生产环境不要写。

  1. 启动mongodb
    进入bin目录:cd /usr/local/mongodb/bin
    运行:mongod --config /usr/local/mongodb/bin/mongodb.conf

  2. 添加管理用户(mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase)
    利用mongo命令连接mongoDB服务器端:

use admin

db.createUser( {user: “pfnieadmin”,pwd: “123456”,roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]});在这里插入图片描述

添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,
这里注意不要使用kill直接去杀掉mongodb进程,(
如果这样做了,请去data/db目录下删除mongo.lock文件),
可以使用db.shutdownServer()关闭.

进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的。
在这里插入图片描述
use admin
db.auth(“pfnieadmin”,“123456”)

 #认证,返回1表示成功

如果使用命令报错"not authorized on admin to execute command "

则表示当前登陆用户不具备相应权限;此时我们退出,再去创建root用户

db.createUser(
	{
		user:"root",
		pwd:"123456",
		roles:[{role:"root",db:"admin"}]
	}
);

加用户权限成功之后,使用root用户登陆,再次使用命令即可成功!!!
在这里插入图片描述
此时我们就可以切用户,创建集合(相等于mysql的数据库)
在这里插入图片描述

二、基本使用

我们新建个集合:member 命令: db.createCollection("members")
插入数据 :db.members.insertOne({name:"zhangsan",age:20,sex:"m"})
查找数据 :db.member.find({})
在这里插入图片描述
精确查找:
db.member.find({“nickName”:“田玉”})
在这里插入图片描述

复合主键:
在这里插入图片描述
重复插入会失败
在这里插入图片描述

但是,颠倒顺序一样会成功。


总结

其他的操作命令就不介绍了,用到百度一查就行。没必要刻意去记住。本篇主要是介绍了他和之前mysql的一些区别。以及在linux环境的安装简单使用,下篇我们去java里面去调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值