FastAPI+React全栈开发08 安装MongoDB

Chapter02 Setting Up the Document Store with MongoDB

08 Installing MongoDB and friends

FastAPI+React全栈开发08 安装MongoDB

The MongoDB ecosystem is composed of different pieces of software, and I remember that when I was starting to play with it, there was some confusion. It is, in fact, quite straightforward as we will see. Let’s examine the following various components that we will be installing or using in the following part:

  • MongoDB community Edition: a free full-fledged version of MongoDB that runs on all major operating systems (Linux, Windows, or macOS) and it is what we are going to use to play around with data locally.
  • MongoDB Compass: a graphical user interface (GUI) for managing, querying, aggregating, and analyzing MongoDB data in a visual environment. Compass is a mature and useful tool that we’ll be using throughout our initial querying and aggregation explorations.
  • MongoDB Atlas: the database-as-a-service solution from MongoDB. To be honest, this is one of the main resons MongoDB is a huge part of the FARM stack. It is relatively easy to set up and it relieves us from manually administering the database.
  • MongoDB Shell: a command line shell that we can use not only to perform simple Create, Read, Update, Delete (CRUD) operations on our database, but also to perform administrative tasks such as creating and deleting databases, starting and stopping services, and similar job.
  • MongoDB Database Tools: serveral command line utilities that enable administrators and developers to export or import data to and from a database, provide diagnostics, or enable manipulation of files stored in MongoDB’s GridFS system.

MongoDB的生态系统是由不同的软件组成的,我记得当我开始使用它的时候,有一些困惑。事实上,我们会看到,这很简单。让我们检查一下我们将在以下部分中安装或使用的以下各种组件:

  • MongoDB社区版:一个免费的完整版本的MongoDB,运行在所有主要的操作系统(Linux, Windows,或macOS)上,这是我们要用它来玩本地数据。
  • MongoDB Compass:一个图形用户界面(GUI),用于在可视化环境中管理、查询、聚合和分析MongoDB数据。Compass是一个成熟而有用的工具,我们将在最初的查询和聚合探索中使用它。
  • MongoDB Atlas: MongoDB的数据库即服务解决方案。说实话,这是MongoDB成为FARM堆栈重要组成部分的主要原因之一。它的设置相对容易,并且使我们不必手动管理数据库。
  • MongoDB Shell:一个命令行Shell,我们不仅可以使用它来执行简单的创建、读取、更新、删除(CRUD)操作,还可以执行管理任务,如创建和删除数据库,启动和停止服务,以及类似的工作。
  • MongoDB数据库工具:几个命令行实用程序,使管理员和开发人员能够从数据库导出或导入数据,提供诊断,或允许操作存储在MongoDB的GridFS系统中的文件。

The MongoDB ecosystem is constantly evolving, and it is quite possible that when you read these pages, the latest version numbers will be higher or some utility might have changed its name. MongoDB recently released a product called Realm, which is a real-time development platform useful for building mobile apps or Internet of Thins(IoT) applications, for instance. We will not cover all of the steps necessary to install all the required software as we do not find a huge stack of screenshots particularly inspiring. We will instead focus on the overall procedure and try to pinpoint they key steps that are necessary in order to have a fully functional installation.

MongoDB的生态系统是不断发展的,很有可能当你阅读这些页面时,最新的版本号会更高,或者一些实用程序可能已经更改了它的名称。MongoDB最近发布了一个名为Realm的产品,这是一个实时开发平台,可用于构建移动应用程序或物联网(IoT)应用程序。我们不会涵盖安装所有所需软件所需的所有步骤,因为我们不会发现大量的截图特别鼓舞人心。相反,我们将重点放在整个过程上,并试图找出必要的关键步骤,以便有一个完整的功能安装。

Installing MongoDB and Compass on Docker

查询6.x的版本:
https://hub.docker.com/_/mongo/tags?page=1&name=6.

在这里插入图片描述

这里,我选择的版本是:6.0.14-jammy

拉取镜像:

docker pull mongo:6.0.14-jammy

创建容器:

docker run --name mongo -d --restart=always -p 27017:27017 mongo:6.0.14-jammy

之后使用python进行连接测试:

import timefrom mongo6.pymongo import MongoClient# 会开进程,主进程需要等待
client = MongoClient('mongodb://zhangdapeng:zhangdapeng520@192.168.77.129:27017/')
print(client)# 等待1秒钟
time.sleep(1)
print("建立连接成功:", client)

安装MongoDB Compass

下载:https://www.mongodb.com/products/tools/compass

在这里插入图片描述

选择Windows版本:
在这里插入图片描述

双击启动:
在这里插入图片描述

进行连接:
在这里插入图片描述

Importing and exporting data with Compass

Now, we cannot have even a vague idea of what we can or cannot do with our data if we don’t have any data to begin with. In the GitHub repository of the book, in the chapter2 folder, you will find a comma-separated values (CSV) file called cars_data.csv.

现在,如果我们一开始没有任何数据,我们甚至不能有一个模糊的概念,我们可以或不可以用我们的数据做什么。在本书的GitHub存储库中,在chapter2文件夹中,您将找到一个名为cars_data.csv的逗号分隔值(CSV)文件。

Click on the Create Database button and insert the database name carsDB and the collection name cars, as follows.

单击Create Database按钮并插入数据库名称carsDB和集合名称cars,如下所示。

在这里插入图片描述

After this step, a new database should be available in the left-hand menu, called carsDB. Select this database on the left and you will see that we created a collection called cars. In fact, we connot have a database without collections. There is a big Import Data button in the middle, and you will use it to open a dialog as follows.

在此步骤之后,左侧菜单中应该有一个名为carsDB的新数据库。选择左边的这个数据库,您将看到我们创建了一个名为cars的集合。事实上,没有集合就没有数据库。中间有一个大的Import Data按钮,您将使用它打开一个对话框,如下所示。

在这里插入图片描述

After hiting the Import Data button, locate the previously downloaded CSV file and you will be presented with the opportunity to tune the types of the individual columns as follows.

单击Import Data按钮后,找到之前下载的CSV文件,您将有机会按照如下方式调整各个列的类型。

在这里插入图片描述

This is important, especially because we’re importing initial data and we do not want to have integers or floating numbers being interpreted as strings. The MongoDB drivers, such as Motor and PyMongo, that we will be using are “smart” enough to figure out the appropriate data types; however, when dealing with Compasss or similar GUI database tools, it is impreative that you take the time to examine all of the data columns and select the appropriate data types.

这一点很重要,特别是因为我们正在导入初始数据,并且我们不希望将整数或浮点数解释为字符串。我们将使用的MongoDB驱动程序(如Motor和PyMongo)足够“智能”,可以找出适当的数据类型;但是,在使用compass或类似的GUI数据库工具时,您必须花时间检查所有数据列并选择适当的数据类型。

This particular file that we imported contains data about 7323 cars and the default for all the fields is string. We made the following modifications when importing:

  • Set the columns year,price,km,kW,cm3, and standard to Number
  • Set the imported and registered columns to Boolean

我们导入的这个特定文件包含7323辆汽车的数据,所有字段的默认值都是string。我们在导入时做了如下修改:

  • 将“year”、“price”、“km”、“kW”、“cm3”和“standard”列设置为“Number”
  • 将imported 和imported 的列设置为Boolean

在这里插入图片描述

The names of the columns are pretty self-explanatory, but we will examine them more later. Now, once you hit the Import button, you should have a pretty decent collection with a little over 7000 documents, each having an identical structure that we believe will facilitate the understanding of the operations that we are going to perform later on.

列的名称是不言自明的,但我们将在后面对它们进行更多的研究。现在,单击Import按钮后,您应该有一个相当不错的集合,其中包含7000多个文档,每个文档都具有相同的结构,我们相信这将有助于理解我们稍后要执行的操作。

Later, we will see how we can use Compass to run queries and aggregations and export the data in CSV or JSON formats in a pretty similar way to the import that we just did. We suggest that you play around with the interface and experiment a bit. You can always delete the collection and the database, and then redo our data import from the CSV file from the repository.

稍后,我们将看到如何使用Compass运行查询和聚合,并以CSV或JSON格式导出数据,其方式与我们刚才所做的导入非常相似。我们建议您玩周围的界面和实验一点。您总是可以删除集合和数据库,然后从存储库的CSV文件中重新导入数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《AIGC重塑金融:AI大模型驱动的金融变革与实践》

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-oBSlqt4Vga1he7DL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

亚信安全联合人保财险推出数字安全保障险方案,双重保障企业数字化转型

数字化发展,新兴技术的应用与落地带来网络攻击的进一步演进升级,同时全球产业链供应链融合协同的不断加深,更让网络威胁的影响范围与危害程度不断加剧。 企业单纯依靠自身安全能力建设,能否跟上网络威胁的进化速度?能否…

《算法笔记》系列----质数的判断(埃氏筛法)

目录 一、朴素算法 二、埃氏筛法 1、与朴素算法对比 2、算法介绍 3、例题即代码实现 一、朴素算法 从素数的定义中可以知道,一个整数n要被判断为素数,需要判断n是否能被2.3.n- 1中的一个整除。只2,3..n- 1都不能整除n,n才能…

基于el-table实现行内增删改

实现效果&#xff1a; 核心代码&#xff1a; <el-table :data"items"style"width: 100%;margin-top: 16px"border:key"randomKey"><el-table-column label"计划名称"property"name"><template slot-scope&q…

Learning To Count Everything

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;学习数一切东西1、研究背景2、提出方法3、模块详细3.1、多尺度特征提取模块3.2、密度预测模块 4、损失函数5、性能对比6、贡献 二…

城管智慧执法系统源码,基于微服务+java+springboot+vue开发

城管智慧执法系统源码&#xff0c;基于微服务javaspringbootvue开发 城管智慧执法系统源码有演示&#xff0c;自主研发&#xff0c;功能完善&#xff0c;正版授权&#xff0c;可商用上项目。 一套数字化的城管综合执法办案系统源码&#xff0c;提供了案件在线办理、当事人信用…

Platypus 一种集中式的央行数字货币方案

集中式的CBDC&#xff0c;混合使用账户模型和UTXO模型。 角色分类 中央银行&#xff1a;发行货币&#xff0c;交易验证&#xff0c;公开交易日志&#xff0c;防止双花。 不是完全受信任的&#xff0c;假定为会遵守监管要求&#xff0c;但可能会破坏交易隐私&#xff0c;即获…

正弦实时数据库(SinRTDB)的使用(9)-有损压缩

前文已经将正弦实时数据库的使用进行了介绍&#xff0c;需要了解的可以先看下面的博客&#xff1a; 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

MES系统怎么解决车间生产调度难的问题?

MES系统三个层次 1、MES决定了生产什么&#xff0c;何时生产&#xff0c;也就是说它使公司保证按照订单规定日期交付准确的产品&#xff1b; 2、MES决定谁通过什么方式&#xff08;流程&#xff09;生产&#xff0c;即通过优化资源配置&#xff0c;最有效运用资源&#xff1b; …

关于SVG格式图片实现室内地图

SVG格式图片 可缩放矢量图形(Scalable Vector Graphics,SVG)基于 XML 标记语言,用于描述二维的矢量图形。 作为一个基于文本的开放网络标准,SVG 能够优雅而简洁地渲染不同大小的图形,并和 CSS、DOM、JavaScript 和 SMIL 等其他网络标准无缝衔接。本质上,SVG 相对于图像…

C++多线程:线程的创建、join、detach、joinable方法(二)

1、线程的开始与结束 程序运行起来&#xff0c;生成一个进程&#xff0c;该进程所持有的主线程开始自动运行&#xff0c;main主线程运行完所有的代码从main函数中返回表示整个进程运行完毕&#xff0c;标志着主线程和进程的死亡&#xff0c;等待操作系统回收资源&#xff0c;因…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格&#xff0c;角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格&#xff0c;角度不拉伸 点击编辑&#xff0c;拖拽到可变区域 问题2、BlockInputEvents 防止透屏

【独立开发前线】Vol.26 【独立开发产品】吉光卡片-让你的文字变得酷炫起来

今天给大家分享一下 独立开发前线 社区成员张小吉 的作品 吉光卡片&#xff1b; 这是一款iOS的APP&#xff0c;下载&#xff1a;吉光卡片&#xff0c;主要功能是帮你制作酷炫的文字卡片&#xff0c;用精美的卡片让你的文字生动起来。 展示效果如下&#xff1a; 你可以用它制作…

【公示】2023年度青岛市级科技企业孵化器拟认定名单

根据《青岛市科技企业孵化器管理办法》&#xff08;青科规〔2023〕1号&#xff09;&#xff08;以下简称《管理办法》&#xff09;、《关于开展2023年度市级科技企业孵化器认定申报工作的通知》&#xff0c;经申报受理、区市推荐、形式审查、专家评审及现场核查等程序&#xff…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

BasicVSR++模型转JIT并用c++libtorch推理

BasicVSR模型转JIT并用clibtorch推理 文章目录 BasicVSR模型转JIT并用clibtorch推理安装BasicVSR 环境1.下载源码2. 新建一个conda环境3. 安装pytorch4. 安装 mim 和 mmcv-full5. 安装 mmedit6. 下载模型文件7. 测试一下能否正常运行 转换为JIT模型用c libtorch推理效果 安装Ba…

malloc是如何分配内存|malloc(1)分配多大内存|free释放内存,会还给操作系统吗?

前言 大家好&#xff0c; 我jiantaoyab&#xff0c;这篇文章给大家介绍mallo和free面试中常问到的问题。 malloc是如何分配内存的&#xff1f; 如果用户分配的内存小于128KB&#xff0c;则通过brk()申请内存 如果用户分配的内存大于128KB&#xff0c;则通过mmap()申请内存 简…

数据分析之POWER Piovt的KPI设置

内容总结&#xff1a; 1.两个表格关联不上&#xff1a;需要添加辅助列&#xff0c;建立关联 2.添加辅助列后还关联不上&#xff1a;将虚线变为实线 3.根据需求要增加一些度量值 4.设置KPI后&#xff0c;绝对值选1后设定百分比 5.在透视表里面加入KPI状态 导入所关联的数据后建立…

游戏领域AI智能视频剪辑解决方案

游戏行业作为文化创意产业的重要组成部分&#xff0c;其发展和创新速度令人瞩目。然而&#xff0c;随着游戏内容的日益丰富和直播文化的兴起&#xff0c;传统的视频剪辑方式已难以满足玩家和观众日益增长的需求。美摄科技&#xff0c;凭借其在AI智能视频剪辑领域的深厚积累和创…

SQLBolt,一个练习SQL的宝藏网站

知乎上有人问学SQL有什么好的网站&#xff0c;这可太多了。 我之前学习SQL买了本SQL学习指南&#xff0c;把语法从头到尾看了个遍&#xff0c;但仅仅是心里有数的程度&#xff0c;后来进公司大量的写代码跑数&#xff0c;才算真真摸透了SQL&#xff0c;知道怎么调优才能最大化…