学习Mongodb一篇文章就够了

目录

简介 

单机版本-安装

集群副本模式-安装

连接并使用mongo

增删改查

mongo用户权限设置

简介 

 

官网地址:MongoDB | Build Faster. Build Smarter. | MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
Mongodb与关系型数据库比较

关系型数据库概念Mongodb概念说明
databasedatabase数据库
tablecollection数据库表(关系型数据库)
集合(Mongodb)
columnfield字段(关系型数据库)
域(Mongodb)
indexindex索引
table joins表连接,Mongodb不支持
primary keyprimary key主键
Mongodb自动将_id设置为主键

单机版本-安装

  • Centos7 安装 Mongodb 5.0.6
    下载地址:MongoDB Community Download | MongoDB
  • 安装步骤
    #进入到安装目录
    cd /home/dym/mongodb
    #下载安装包
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.6.tgz
    #解压
    tar -zxvf mongodb-linux-x86_64-rhel70-5.0.6.tgz
    #重命名解压目录名称并进入到解压后的目录
    mv mongodb-linux-x86_64-rhel70-5.0.6
    cd mongodb-5.0.6
    #设置环境变量
    vi /etc/profile 
    #变量内容如下:
    export MONGODB_HOME=/home/dym/mongodb/mongodb-5.0.6
    export PATH=PATH:{MONGODB_HOME}/bin
    #环境变量生效
    source /etc/profile
    #建立日志和数据文件夹
    mkdir logs data
    #设置配置文件
    cd /home/dym/mongodb/mongodb-5.0.6/bin
    vi mongodb.conf
    #内容如下:
    port=27017 #端口
    bind_ip=0.0.0.0 #默认是127.0.0.1
    dbpath=/home/dym/mongodb/mongodb-5.0.6/data #数据库存放
    logpath=/home/dym/mongodb/mongodb-5.0.6/logs/mongodb.log #日志文件
    fork=true #设置后台运行
    #auth=true #开启认证
    #启动mongodb
    mongod --config mongodb.conf
  • 连接客户端,验证启动是否成功
    mongo 192.168.160.110:27017/admin -u root
    admin:集合名称,root是用户名
    至此mongodb安装完成

集群副本模式-安装

参考文章:生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)

连接并使用mongo

  • 连接到数据库
    mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • 创建数据库

    use DATABASE_NAME

    如果数据库不存在,则创建数据库,否则切换到指定数据库。
    列举所有的数据:  show dbs

  • 查看数据库列表

    show dbs
  • 创建集合

    db.createCollection(name, options)

    name: 要创建的集合名称
    options: 可选参数, 指定有关内存大小及索引的选项
    查看所有集合:show collections

    删除集合:db.mycol2.drop();

  • 设置索引

    db.user.createIndex({"name":1})
  • 查看索引

    db.user.getIndexes()

增删改查

  • 插入数据
    db.COLLECTION_NAME.insert(document)
    db.COLLECTION_NAME.save(document)

    save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
    insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。
    db.user.insert({"name":"zhangdan","age": NumberInt(18)})

  • 修改数据
    db.user.update({'name':'zhangsan'},{$set:{'age': NumberInt(10)}},{multi:true})

    如果你要修改多条相同的文档,则需要设置 multi 参数为 true

  • 删除数据
    db.collection.remove({})

    {}删除条件

  • 查询数据
    db.user.aggregate([{$match: {id: "001"}}, {$count: 'num'}])
    db.user.find({})

mongo用户权限设置

查看用户:

db.system.users.find().pretty();

添加用户:

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

说明:

roles:是权限主要有以下权限

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕菲烟云

坚持原创,希望大家多多交流

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值