- MongoDB 是一个开源的文档导向数据库,采用NoSQL(非关系型数据库)的设计理念。
- MongoDB是一个基于分布式文件存储的数据库。
- 分布式文件存储是一种将文件数据分布式的存储在多台计算机上。
- MongoDB是一款强大的文档导向数据库,适合处理大量动态数据和需要灵活数据模型的应用场景
- 文档导向数据库:它以文档的形式存储数据,每个文档都是一个键值对的集合,类似于JSON对象,可以包含各种类型的数据。
- MongoDB的优点:
- 文档向导:MongoDB存储数据的基本单位是文档(类似于JSON{java scripts}对象),文档可以包含嵌套的数据结构,这是得数据模型更加灵活
- 可扩展性:MongoDB支持水平扩展,可以通过添加更多的机器来增加存储容量和提高性能
- 高性能:MongoDB使用内存映射文件的方式来提供高性能的数据访问,并且支持复制和分片
- 丰富的查询语言:MongoDB提供了丰富的查询语言和索引支持,可以进行复杂的数据查询和聚合操作
- 数据存储的逻辑结构:
- MySQL 逻辑结构:
- 库-表-数据行
- Mongodb 逻辑结构:
- 库-集合-文档
- MySQL 逻辑结构:
- Mongodb的部署:
- 1.创建一个用户,专门用来管理Mongodb
- useradd mongod
- passwd mongod
- 2.创建mongodb所需要的目录:
- mkdir -p /mongodb/conf
- mkdir -p /mongodb/log
- mkdir -p /mongodb/data
- 3.拖包安装:
- 解压数据包:tar xf mongodb-linux-x86_64-rhel70-4.4.4.tgz
- 拷贝目录下的bin目录到 /下的mongodb
- cp -a mongodb-linux-x86_64-rhel70-4.4.4/bin/ /mongodb
- 4.设置目录结构权限:
- chown -R mongod:mongod /mongodb
- 5.设置用户环境变量:
- su - mongod
- vi .bash_profile
- 添加:export PATH=/mongodb/bin:$PATH
- 保存退出
- source .bash_profile
- 6.创建配置文件并写入内容(YAML格式):
- cat > /mongodb/conf/mongo.conf <<EOF
- systemLog:
- destination: file
- path: "/mongodb/log/mongodb.log"
- logAppend: true
- storage:
- journal:
- enabled: true
- dbPath: "/mongodb/data/"
- processManagement:
- fork: true
- net:
- port: 27017
- bindIp: 192.168.8.5,127.0.0.1
- EOF
- 7.启动/关闭mongodb(端口:27017):
- 启动:mongod -f /mongodb/conf/mongo.conf
- 关闭:mongod -f /mongodb/conf/mongo.conf --shutdown
- 8.登录mongodb:
- mongo
- 至此 mongodb数据库部署完毕,以下是常用的基本操作
- 1.创建一个用户,专门用来管理Mongodb
- mongodb常用基本操作:
- mongodb 默认存在的库
- > show databases;
- admin 0.000GB
- config 0.000GB
- local 0.000GB
- mongodb 默认存在的库
-
- 查看当前db版本:db.version()
- 查看当前在那个库中:db\db.getName()
- 查看所有库:show dbs
- 切换数据库:use [库名]
- 查看所有的collection(集合\表):show tables
- 显示当前数据库状态:db.stats()
- 查看当前连接数据库的主机ip:db.getMongo()
- Mongodb对象的操作:
- mongo mysql
- 库 -----> 库
- 集合 -----> 表
- 文档 -----> 数据行
- 1.库的操作:
- 创建库时注意:
- 当use的时候,系统就会自动创建一个数据库。
- 如果use之后没有创建任何集合。
- 系统就会删除这个数据库。
- 删除数据库;
- 如果没有选择任何数据库,会删除默认的test数据库
- //删除test数据库
- 创建一个A库:use A
- 删除A库:
- use A
- db.dropDatabase()
- 先使用use切换到要删除的库下,再使用db.dropDatabase()命令删除
- 创建库时注意:
-
- 2.集合的操作:
- 创建集合语法格式:
- db.createCollection(name,options)
- 参数说明:
- name: 要创建的集合名称
- options: 可选参数, 指定有关内存大小及索引的选项
- capped 值为true,则创建固定集合
- autoIndexId 值为true,自动在 _id 字段创建索引。
- size 为固定集合指定一个最大值(以字节计)
- max 指定固定集合中包含文档的最大数量
- 实例1:
- use app
- 创建a表:db.createCollection('a')
- 创建b表:db.createCollection('b')
- 查看当前数据库下所有集合:show collections\db.getCollectionNames()
- 实例2:
- 当插入一个文档的时候一个集合就会自动创建
- db.集合.insert({键:'值',键:'值'})
- 查询数据:
- 查看集合中所有内容:
- db.haha.find().pretty()
- 查看集合满足条件的文档:
- db.haha.find({id:'102'}).pretty()、
- 查看集合中所有内容:
- 删除集合:
- db.集合名.drop()
- 重命名集合:
- db.old.renameCollection("new")
- 批量插入数据:
- for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"docker","age":6,"date":new Date()})}
- 创建集合语法格式:
- 2.集合的操作:
-
- 3.mongodb数据查询语句:
- 查询集合中所有数据:db.集合.find()
- 默认每页显示20条记录,当显示不下的的情况下,可以用it迭代命令查询下一页数据。
- 查看第一条记录:db.log.findOne()
- 查询总的记录数:db.log.count()
- 删除集合中的记录数:
- 删除满足条件的文档:db.log.deleteOne({'uid':0})
- 删除集合中所有记录:db.log.remove({})
- 查看去掉重复的数据:db.log.distinct('name')
- 查询集合中所有数据:db.集合.find()
- 3.mongodb数据查询语句:
-
- 4.查询集合存储信息
- 查看集合状态:db.集合名.stats()
- 查询集合中数据的原始大小:db.log.dataSize()
- 查询集合中索引数据的原始大小:db.log.totalIndexSize()
- **查询集合中索引+数据压缩存储之后的大小:db.log.totalSize()
- 查询集合中数据压缩存储的大小:db.log.storageSize()
- 4.查询集合存储信息
-
- 5.变量插入数据:
- 插入数据:
- db.col.insert({title: 'MongoDB',
- description: 'Nosql数据库',
- by: '教程',
- url: 'http://www.test.com',
- tags: ['mongodb', 'database', 'NoSQL'],
- likes: 100
- })
- 将以上插入数据的操作定义为变量:
- document=({title: 'MongoDB',
- description: 'Nosql数据库',
- by: '教程',
- url: 'http://www.test.com',
- tags: ['mongodb', 'database', 'NoSQL'],
- likes: 100
- });
- 使用变量插入数据:
- db.col.insert(document)
- 插入数据:
- 5.变量插入数据:
-
- 6.单行插入数据\多行插入数据:
- 单行:db.collection.insertOne({'a':1})
- 多行:
- 注:先将插入操作定义为一个变量,然后执行这个变量
- var res1=db.collection.insertMany([{"b": 3}, {'c': 4}])
- res1
- 6.单行插入数据\多行插入数据:
-
- 7.MongoDB更新文档
- 先插入数据用于验证:
- db.col.insert({
- title: 'MongoDB',
- description: 'Nosql数据库',
- by: '教程',
- url: 'http://www.test.com',
- tags: ['mongodb', 'database', 'NoSQL'],
- likes: 100
- })
- 使用update()方法来更新标题(title):
- db.col.update({'title':'MongoDB'},{$set:{'title':'123'}})
- 查看更新结果:
- > db.col.find().pretty()
- 发现只修改了第一行文档,想要修改行需要设置multi参数为true
- db.col.update({'title':'MongoDB'},{$set:{'title':'123'}},{multi:true})
- 删除匹配条件的一条文档:
- db.collection.deleteOne({"c":4})
- 删除匹配条件的所有文档:
- db.collection.deleteMany({"b":3})
- 先插入数据用于验证:
- 7.MongoDB更新文档
1.Mongodb 介绍及部署
2025/2/22 16:41:00
来源:https://blog.csdn.net/2302_77503226/article/details/139603377
浏览:
次
关键词:1.Mongodb 介绍及部署
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com