MongoDB快速入门指南与docker-compose快体验

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

MongoDB快速入门指南与docker-compose快体验

MongoDB相对于RDBMS的优势

  1. 模式少 -MongoDB是一个文档数据库,其中一个集合包含不同的文档。一个文档之间的字段数,内容和文档大小可能会有所不同。
  2. 单个对象的结构清晰。
  3. 没有复杂的联接。
  4. 深入的查询能力。MongoDB支持使用与SQL几乎一样强大的基于文档的查询语言对文档进行动态查询。
  5. sql Tuning(优化)
  6. 易于扩展
  7. 不需要将应用程序对象转换/映射到数据库对象。
  8. 使用内部存储器存储(窗口式)工作集,从而可以更快地访问数据

RDBMS:关系数据库管理系统

为什么要使用MongoDB

  1. 面向文档的存储,BSON格式存储,即Binary JSON
  2. 单键索引、复合索引、多键索引、地理空间索引、全文本索引和哈希索引
  3. MongoDB实现高可用 主从复制 
  4. 自动分片 auto sharding 
  5. 丰富的查询 
  6. 快速原地更新(fast in-place updates):大部分更新操作无需申请新空间
  7. MongoDB的专业支持map/reduce支持
  8. Gridfs:各种size大小的集群文件支持

在哪里使用MongoDB

  1. 大数据
  2. 内容管理和交付
  3. 移动和社交基础设施
  4. 用户数据管理
  5. 数据中心

docker-compose 快速启动 MongoDB

docker-compose.yml

version: '3'
    services:
      mongodb:
        image: mongo:4.2.6 # 镜像:版本
        container_name: mongo_db
        environment:
          - MONGO_INITDB_DATABASE=默认的数据库
          - MONGO_INITDB_ROOT_USERNAME=你的root管理员名称
          - MONGO_INITDB_ROOT_PASSWORD=你的root管理员名称密码
        volumes:
          - ./mongo/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
          - ./mongo/mongo-volume:/data/db
        ports:
          - "27017-27019:27017-27019"
        restart: always

init-mongo.js

// db.getSiblingDB() 相当于 use admin;
db.getSiblingDB('admin')
    .createUser({
        user: 'user',
        pwd: 'user',
        roles: ['readWrite']
});

然后执行命令

docker-compose up -d

Navicat Premium连接

image.png
填入上述 docker-compose.yml  对应的参数
测试连接,测试成功
image.png
如果你的不显示,去

navicat ==》 菜单 ==》  显示 ==》钩上显示隐藏的项目

重启navicat就可以了

image.png

打开一个集合右下角可以查看

  • 网格视图
  • 树视图
  • JSON视图

增删改查

1.创建操作

  • db.collection.insertOne()
  • db.collection.insertMany()

image.png

// 插入集合名称为products的集合并插入数据 (不存在集合会新建)
db.products.insertOne({
    item: "card",
    qty: 15
});

// 批量插入数据
db.products.insertMany([{
    item: "card1",
    qty: 16
}, {
    item: "card2",
    qty: 17
}, {
    item: "envelope",
    qty: 20
}, {
    item: "stamps",
    qty: 30
}]);

2.查询操作

  • db.collection.find()

image.png

db.products.find({ qty: 15 }).limit(1)

3.更新操作

  • db.collection.updateOne()

db.collection.updateOne(filter,update,options)

查找与过滤器匹配的第一个文档,并应用指定的更新修改。

image.png

db.products.find({
    item: "stamps"
}).limit(1);

// 找到item为stamps的并修改其qty为60
db.products.updateOne(
    {
        "item": "stamps"
    },
    {
        $set: {
            "qty": 60
        }
    }
);

db.products.find({
    item: "stamps"
}).limit(1);
  • db.collection.updateMany()

image.png

// 把qty大于15的统统修改为15
db.products.updateMany(
    {
        qty: {
            $gt: 15
        }
    },
    {
        $set: {
            "qty": 15
        }
    }
);

image.png

  • db.collection.replaceOne()

使用替换文档替换集合中与过滤器匹配的第一个匹配文档。

// 把集合products中item为stamps 整个替换掉 
 db.products.replaceOne(
    { "item" : "stamps" },
    { "item" : "stampss", "Borough" : "Manhattan" }
 );

4.删除操作

image.png

 // 删除item为stampss的
 db.products.deleteOne( { "item" : "stampss" } );
 // 批量删除qty小于15的
 db.products.deleteMany( { "qty" : {$lt: 15} } );

持续更新连接 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
7月前
|
NoSQL MongoDB 数据库
MongoDB 解析:灵活文档数据库与 Docker Compose 部署
`MongoDB` 是一款开源、高性能的 `NoSQL` 数据库,以其无模式的文档存储格式(BSON)而著称,广泛应用于众多开源项目,包括但不限于 Yapi 等。它在大规模数据存储和实时数据处理方面表现出色,因此备受青睐。在本文中,我们将深入探讨 `MongoDB` 的特性,并详细阐述如何使用 Docker Compose 轻松部署 `MongoDB` 数据库,为你提供全方位的指导。
239 1
MongoDB 解析:灵活文档数据库与 Docker Compose 部署
|
4月前
|
NoSQL MongoDB 数据安全/隐私保护
|
1月前
|
NoSQL MongoDB Docker
docker安装MongoDB
docker安装MongoDB
21 0
|
4月前
|
NoSQL MongoDB Docker
百度搜索:蓝易云【Scrapy框架之Docker安装MongoDB教程。】
现在,你已经成功在Scrapy框架中使用Docker安装并配置了MongoDB。你可以在Scrapy爬虫中使用MongoDB进行数据存储和处理。
220 0
|
4月前
|
数据安全/隐私保护 Docker 容器
mongodb4.2.2 docker 更正时区,与编码,以及远程访问配置文件
mongodb4.2.2 docker 更正时区,与编码,以及远程访问配置文件
170 0
|
4月前
|
NoSQL MongoDB Docker
docker搭建mongodb集群
docker搭建mongodb集群
86 0
|
5月前
|
NoSQL MongoDB Docker
docker 配置mongoDB
docker 配置mongoDB
36 0
|
5月前
|
NoSQL Linux MongoDB
轻松掌握组件启动之MongoDB:快速入门、Linux安装和Docker配置指南
本文总结了MongoDB的快速入门、Linux安装和Docker配置指南。它提供了一步步的操作指引,帮助读者迅速上手MongoDB,并了解如何在Linux环境下进行安装、启动和配置。此外,文章还介绍了使用Docker安装和配置MongoDB的方法,使读者能够更轻松地部署和管理MongoDB实例。
|
8月前
|
NoSQL 关系型数据库 MySQL
【Docker】Docker安装MongoDB最新版并连接使用附加docker常用命令
【Docker】Docker安装MongoDB最新版并连接使用附加docker常用命令
453 0
|
存储 NoSQL Linux
如何正确地使用 Docker 在云服务器上部署 MongoDB v6 数据库并连接
本篇文章将向各位读者介绍使用 Docker 在云服务器上部署 MongoDB v6,并使用免费的 Studio 3T 连接数据库。本文弥补了网上既有方案的一些不足,解决了一些部署中的常见问题,有助于提升部署效率。
719 0
如何正确地使用 Docker 在云服务器上部署 MongoDB v6 数据库并连接