centos7 mongodb 入门

编程入门 行业动态 更新时间:2024-10-09 19:21:13

centos7 mongodb <a href=https://www.elefans.com/category/jswz/34/1770026.html style=入门"/>

centos7 mongodb 入门

mongodb 入门

简介

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

安装

阿里云镜像

根据网页中配置方法, vim /etc/yum.repos.d/mongodb-org.repo 并将配置粘贴进去,修改版本为最新的 4.2

[mongodb-org] 
name = MongoDB Repository
baseurl = /$releasever/mongod
b-org/4.2/x86_64/
gpgcheck = 1 
enabled = 1 
gpgkey = .2.asc

运行 yum search mongodb 可以看到相关的包。
运行 yum install -y mongodb-org 开始安装 mongodb。可以看到自动帮我们找到需要安装的依赖包,这也是用 yum 安装而不用 rpm 的原因。

配置

/etc/mongod.conf

systemLog:   # 日志配置destination: file  # 文件形式logAppend: true  # 日志追加path: /var/log/mongodb/mongod.log	 # 日志文件路径storage:  # 存储配置dbPath: /var/lib/mongo  # 数据存储路径# 是否开启 journal 日志持久存储,journal 日志用来数据恢复,是 mongod 最基础的特性,通常用于故障恢复。64 位系统默认为 true,32 位默认为 false,建议开启,仅对 mongod 进程有效。journal:enabled: trueprocessManagement:  # 进程管理fork: true # 运行在后台pidFilePath: /var/run/mongodb/mongod.pid # PID 文件路径timeZoneInfo: /usr/share/zoneinfonet: # 网络配置port: 27017  # 默认端口bindIp: 127.0.0.1  # 绑定ip, 多个用逗号分隔security: # disabled 或者 enabled,仅对 mongod 有效;表示是否开启用户访问控制(Access Control),即客户端可以通过用户名和密码认证的方式访问系统的数据,默认为 “disabled”,即客户端不需要密码即可访问数据库数据。(限定客户端与 mongod、mongos 的认证)authorization: enabled 

启动

service mongod start
# 检查一下是否有 mongod 的进程
ps -ef | grep mongod
# 打印出来的信息,可以看到它是以 mongod 的身份运行的

基础概念

  • 文档:数据的基本单元,相当于关系型数据库中的行
    • 由键值对组成的有序集
    • 不仅区分大小写,还区分数据类型
  • 集合:多个文档组成集合,文档可以是不同的结构,相当于关系型数据库中的表
    • 不能以system开头,且不能使用保留字符
    • 动态模式可以使一个集合中包含多样化文档对象
  • 数据库:多个集合聚合组成数据库
    • 数据库名称区分大小写
    • 几个特殊意义的数据库:admin(用户数据)、local(本地数据)、config(配置数据)

MongoDB连接

// 标准URI连接语法
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
  • mongodb:// uri协议,固定格式
  • username:password@ 可选,连接数据库用户验证
  • host 必须指定至少一个host,如果连接复制集,可指定多个主机地址
  • port 可选,默认为27017
  • /database 连接数据库名称,若不指定默认打开test数据库
  • ?options 连接选项

用户管理

MongoDB数据库默认是没有用户名及密码的,即无权限访问限制。为了方便数据库的管理和安全,需创建数据库用户。

权限说明
read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root只在admin数据库中可用。超级账号,超级权限
db.createUser({user:	'<name>',pwd: 	'<cleartext password>',roles: [{role: '<role>', db: '<database>'} | '<role>',...]
});

数据库、集合操作

  • use database 切换数据库,如果不存在则创建
  • show dbs 查看所有数据库
  • db 查看当前数据库
  • db.dropDatabase() 删除当前数据库
  • db.createCollection(‘collection’) 创建集合
  • db.collection.renameCollection (‘x’) 重命名集合
show dbs;
use test;
db.dropDatabase();db.createCollection('haha');
db.haha.renameCollection('heihei');
db.heihei.drop();

文档操作

  • db.collection.insert(document) 插入文档
  • db.collection.update(query,update) 更新文档
  • db.collection.deleteOne(query) 删除单个文档
  • db.collection.deleteMany(query) 删除多个文档
  • db.collection.find(query,projection) 查找文档

$特殊符号

  • $lt / $lte 小于(<) / 小于等于(<=)
  • $gt / $gte 大于(>) / 大于等于(>=)
  • $ne 不等于(!=)
  • $or 条件查询 or
  • $set update操作时set
  • $unset 删除字段
// 插入
db.heihei.insert({title: '夕阳山外山',description: '夕阳山外山',by: 'DonfuPanda',tags: ['mongodb', 'database', 'NoSQL'],likes: 100
})
db.heihei.find()
db.heihei.update({ title: '夕阳山外山' }, { $set: { title: 'MongoDB' } })
db.heihei.find().pretty()// 删除
db.heihei.deleteOne({ status: 'D' })
db.heihei.deleteMany({ status: 'A' })// 查询
db.heihei.find().pretty()
db.heihei.findOne().pretty()// and 查询
db.heihei.find({ by: '夕阳山外山', title: 'MongoDB' }).pretty()
// or 查询
db.heihei.find({ $or: [{ by: '夕阳山外山' }, { title: 'MongoDB' }] }).pretty()
db.heihei.find({likes: { $gt: 50 },$or: [{ by: '夕阳山外山' }, { title: 'MongoDB' }]}).pretty()// limit skip
db.heihei.find({}, { title: 1, _id: 0 }).limit(2)
db.heihei.find({}, { title: 1, _id: 0 }).limit(1).skip(1)

更多推荐

centos7 mongodb 入门

本文发布于:2024-02-13 07:09:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757603.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:入门   mongodb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!