【MongoDB的安装及使用】

本文介绍了MongoDB的基本概念,包括其文档模型、与MySQL的对比,以及如何使用Docker部署和管理MongoDB。涵盖了创建数据挂载目录、运行容器、基本操作命令、索引创建和维护,以及推荐的客户端工具。
摘要由CSDN通过智能技术生成

mogodb学习手册


MongoDB简介

MongoDB 是一个开源、分布式、面向文档的数据库管理系统(NoSQL),由C++语言编写。数据以 BSON 格式的文档形式存储,每个文档可以包含任意复杂度的嵌套结构,支持动态模式(schema-free),即同一个集合中的文档可以有不同的结构。它以其灵活的数据模型、横向扩展能力和高可用性而受到广泛采用。


一、MongoDB与MySQL结构映射关系

MySQLMongoDB解释
databasedatabase数据库
tablecollection表/集合
rowdocument记录/文档
columnfield字段/域
indexindex索引
table joins不支持连接
primary keyprimary key主键,MongoDB自动将id设置为主键

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用Docker运行MongoDB

1.创建数据挂载目录

cd /opt && mkdir -p mongodb/data/db

2.运行mongodb容器

docker run -d \ 
--name mongodb \
-p 27017:27017 \
-v /opt/mongodb/data/db:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:4.4

3.连接mongodb服务

[root@localhost db]# docker exec -it mongodb /bin/bash
root@b5999b9103e1:/#
root@b5999b9103e1:/# mongo -u "root" -p "123456" --authenticationDatabase "admin"
MongoDB shell version v4.4.11
connecting to: mongodb://127.0.0.1:27017/?authSource=admin&compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("38ae6409-5e39-4177-afb2-97e600bc3215") }
MongoDB server version: 4.4.11

三.使用MongoDB

1.基本操作命令

命令解释
show collections查看集合
show dbs查看所有数据库
use config使用config数据库
db.dropDatabase()删除当前数据库
db.createCollection(name)创建指定名称的集合
db.clt_name.drop()删除指定集合
db.clt_name.insert(document)插入文档到指定集合中
db.collection_name.save(document)插入或更新文档
db.collection.remove()删除记录,支持条件操作
db.clt_name.find()查询当前集合文档,支持条件查询
db.clt_name.remove({})删除当前集合中所有文档

更多命令访问:👉官方文档👈

2.示例

# 在testdb数据库user集合中插入文档信息 {name:"xiaoming",sex:"男",age:23}, {name:"xiaohong",sex:"女",age:22}
use testdb
db.user.insert({name:"xiaoming",sex:"男",age:23})
db.user.insert({name:"LiHua",sex:"男",age:23})
db.user.insert({name:"kangkang",sex:"男",age:20})
db.user.insert({name:"Mary",sex:"女",age:21})
# save和insert都可以实现插入功能,如果传入数据有_id并且和集合中有匹配的_id,save可以实现替换操作
db.user.save({name:"xiaohong",sex:"女",age:22})
# 查询姓名为xiaoming的文档信息
db.user.find({name:"xiaoming"})
# 删除性别为22的文档信息
db.user.deleteOne({age:22})
# 查询文档条数
db.user.find().count()
# 查询文档姓名和性别信息
db.user.find({},{id:1,name:1})
# 查询年龄小于30的文档信息并根据id进行排序(-1为倒序,1为正序)
db.user.find({age:{$lt:30}}).sort(id:-1)
# 跳过n条数据,查m条数据
db.user.find().limit(m).skip(n)

四.索引

MongoDB中有以下几种索引类型:

  • 单域索引:对单个域建立索引
  • 复合索引:对多个域建立符合索引,有顺序性
  • 多建索引:对数组类型中每一个元素建立索引
  • 全文索引:支持类型值为string或string数组元素建立索引
  • 哈希索引:适合用于等值查询
  • 地理空间索引:存储平面或球面上的点

1.索引操作示例

#单字段索引,1升序,-1降序
db.ctl_name.createIndex({"字段名":"排序方式"})
# 查看索引
db.user.getIndexes()
# 查看索引大小
db.user.totalIndexSize()
# 删除索引
db.user.dropIndex("索引名")

五. 客户端工具

MongoDB中比较好用的客户端有Studio 3T和Robo 3T等,习惯使用Navicat操作数据库的也可以使用Navicat for MongoDB。

总结

MongoDB因为其独特的文档模型、强大的水平扩展能力和实时查询分析能力,在现代Web和移动应用、大数据处理以及高度动态、多变数据场景下得到了广泛应用。然而,对于高度事务性的应用场景或需要复杂的跨表JOIN查询的传统业务逻辑,可能更适合采用关系型数据库。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值