当前位置: 首页 > news >正文

怎么样让网站网址有图标建工教育培训机构

怎么样让网站网址有图标,建工教育培训机构,鞍山网站,重庆最新情况 最新消息文章目录 1. 容器与应用之间的关系介绍2. 使用 Docker 容器安装 MongoDB3. Mongosh 操作3.1 Mongosh 连接到 MongoDB3.2 基础操作与 CRUD 4. Python 操作 MongoDB5. Nodejs 操作 MongoDB参考文献 1. 容器与应用之间的关系介绍 MongoDB 的安装有时候并不是那么容易的#xff0… 文章目录 1. 容器与应用之间的关系介绍2. 使用 Docker 容器安装 MongoDB3. Mongosh 操作3.1 Mongosh 连接到 MongoDB3.2 基础操作与 CRUD 4. Python 操作 MongoDB5. Nodejs 操作 MongoDB参考文献 1. 容器与应用之间的关系介绍 MongoDB 的安装有时候并不是那么容易的为了简化这个步骤比较舒适好用的方法是使用容器Container安装。 在讲容器之前先说一下容器的镜像Image镜像是容器的前置基础是一个关于某些应用的软件包。在镜像里规定了要运行这个应用需要准备的所有内容包括代码、运行时、库、环境变量和配置文件等。通过一个镜像可以创建和运行容器实例。镜像如下图1 容器是一套完整的应用程序环境包括应用程序本身及其所有依赖项如库、运行时、系统工具和设置等。通过使用容器启动应用程序用户无需手动解决各种依赖和系统环境问题即可实现快速启动。以 MongoDB 为例启动该数据库只需下载相应的 MongoDB 镜像然后使用该镜像创建容器即可立即启动 MongoDB 服务如下图 2 所示。 需要注意的是尽管 MongoDB 运行在容器中但实际上并非完全在本地执行。以在 Linux 主机内安装 MongoDB 为例在 Linux 环境下进行安装需要一个操作系统因此在容器中除了 MongoDB还需要集成一个完整的操作系统。 整理说明即在我们的 Linux 主机最先希望安装数据库的机器中有一个容器在这个容器内有一个 Linux 的系统在这个系统中安装了一个 MongoDB 的服务所谓的使用容器运行 MongoDB 就是指使用了这样一个服务。 到这里是否有个疑问——这应该算是在当前主机访问另一个主机了那么我们要怎么访问这个 MongoDB 呢是否应该进入到这个系统中然后像使用别的数据库那样打开一个 CLI 客户端输入指令进行增删改查呢 当然这确实是一种访问方式。实际上我们知道就算是安装在本地的数据库也会选择工作在一个端口中。譬如 MySQL 的 3306Redis 的 6379MongoDB 的是 27017。所以容器就将系统内端口与主机的端口建立了相互的映射将容器内的一个端口映射成主机的端口就像是上面图 2 的 PORTS 所示此时容器的 27017 端口就是主机的 27017 端口访问主机的 27017 端口即是访问容器的 27017 端口。 2. 使用 Docker 容器安装 MongoDB 使用以下命令安装一个 Docker如果你还没有的话 apt install docker.io安装完毕后可以使用以下命令验证如正确安装会显示一个版本号 docker --version使用以下命令下载 MongoDB 镜像 docker pull mongo下载完成后可以使用以下命令查看镜像列表 docker images使用下载好的镜像启动 MongoDB 容器 docker run -d -p 27017:27017 --name my-mongodb mongo在上述命令中run 是启动一个容器-d 是指定在后台运行-p 是在主机和容器之间创建端口映射冒号左侧是主机端口右侧是容器端口--name 是为当前容器命名mongo 是镜像名如果有版本需求还可以加上版本标签如 mongo:latest具体的镜像名称和版本号可以通过镜像列表查看。 容器启动后的情况使用 docker ps 命令查看如下图划线部分所示 使用下面的命令在进入到容器内 docker exec -it 8424792f4ec4 /bin/bash其中 exec 是指在容器内执行命令-i 是使标准输入保持打开-t 是分配一个伪终端同时使用可以理解为交互式执行命令并分配一个伪终端8424792f4ec4 是容器的 ID保证唯一的情况下可以简略输入。/bin/bash 是实际使用的 ShellShell 可以理解为一种命令行界面当然你也可以只输入 bash这是一样的效果。由此可以持续性地操作容器。情况大概如下图所示与操作 Linux 没什么不同顺便一提得是从 MongoDB 的 Dockerfile 中可以看到这个 MongoDB 是在 Debian 系统之上安装的。 在容器内使用如下命令进入到 MongoDB 的 Shell 中。 mongosh当出现下面的状态时就代表了成功进入那之后的操作将会在下文中详细说明。 如需了解更多的 Docker 命令可以查阅此文档 https://dockerdocs.cn/reference/index.html 3. Mongosh 操作 3.1 Mongosh 连接到 MongoDB 在 2.5 中使用 mongosh 命令连接到 MongoDB 仅为使用默认参数该命令加上一些可能使用到的参数后类似于下面这个命令 mongosh --host localhost --port 27017或者类似于下面这一行 mongosh mongodb://localhost:27017这在 MongoDB 中被称为连接串Connection String即使用一个字符串来代表所有的参数。连接串的使用常见于使用代码连接 MongoDB 的场景。 为了安全性一般需要启用密码来登录 MongoDB。在容器中要通过 conf 来使用密码比较困难推荐的做法是在容器启动的时候设置一些环境变量来启用密码如下 docker run -d -p 27017:27017 --name my-mongodb2 \ -e MONGO_INITDB_ROOT_USERNAMEadmin \ -e MONGO_INITDB_ROOT_PASSWORDadmin123 \ -e MONGO_INITDB_DATABASEadmin \ mongo这个命令在启动容器的时候为 Mongodb 设置了一个 ROOT 用户 admin密码是 admin123在指定的数据库 admin 中进行身份验证。注意事项在设置密码或者账号时候尽量避免使用 “:”、“” 等符号以保证密码字符串会被数据库引擎正确解析。 这个时候如果只像上文一样Mongosh 只设置了端口号和主机名的话是没有权限操作的得到的结果就像下面一样 test show databases MongoServerError: Command listDatabases requires authentication使用以下的方法选择一个进行身份验证 1. mongosh --username admin --password admin123 2. mongosh mongodb://admin:admin123localhost:27017 3. mongosh --username admin --password admin123 --authenticationDatabase admin 4. mongosh mongodb://admin:yejue123localhost:27017/database?authSourceadmin如果你的用户是创建在 admin 数据库以外的需要指定在哪个数据库进行验证并且登录后也只能看到那一个数据库。 另外可以依次执行下列命令看到容器在启动时设置的用户 use admin show collections db.system.users.find()3.2 基础操作与 CRUD 以下列出一些简单的操作 # 显示数据库 show databases# 创建数据库/切换数据库 use databasename# 查看内置的 role show roles# 在当前数据库创建一个用户 db.createUser({user: username, pwd: password, roles: [{role: readWrite, db: dbtabases name}]} )# 查看当前数据库的所有用户 db.getUsers()# 查看所有的集合 show collections Mongodb 是面向文档的 NoSQL 的数据库数据通常以 BSON 格式存储而在 Mongosh 中看到的则是以 JSON 格式显示的。MongoDB 有三种组织数据的层级数据库、集合Collection、文档Document。他们之间的关系用一句话概括即 “在一个数据库中有若干个集合集合内通常存放着有相似内容的文档”。如果以关系型数据库来类比则集合相当于一个表一个文档相当于一行记录。这个文档并非常见的“文件文档”而是一个键值对形式的 JSON/BSON 对象。下面我们将以一些例子来引入完整的 CRUD请读者在其中体会集合与文档的含义。 例1假设有一个图书管理系统的数据库里面有各种各样的图书。 创建一个数据库 “BookManagement”。use BookManagement 使用 db.createCollection() 函数来创建名为 books 的集合执行以下命令 db.createCollection(books)以默认参数创建的集合没有大小限制存储空间会自动增长。可以通过指定一些参数来限制集合大小是否自动增长如下则设置了一个最大存储空间 100 MB、最大文档数量为 1000 的集合 db.createCollection(books, { capped: true, size: 100 * 1024*1024, max: 1000})可以通过 db.collection.stats() 函数看到集合的设置 db.books.stats()Insert 向集合内插入文档数据的方式有两种下面我们分别以单条插入和多条插入的方法向 resources 插入几个文档。 单个插入 db.collection.insertOne() db.books.insertOne({title: 围城,authors: [钱钟书],publication_year: 1947,publisher: 上海文艺出版社,tags: [小说, 讽刺文学],remainings: 10 })批量插入 db.collection.insertMany() db.books.insertMany([{title: 活着,authors: [余华],publication_year: 1993,publisher: 作家出版社,tags: [小说, 现实主义],remainings: 5},{title: 红楼梦,authors: [曹雪芹],publication_year: 1791,publisher: 人民文学出版社,tags: [古典小说, 传统文学],remainings: 8}, ])现在可以通过以下函数来查询集合中所有的文档 db.books.find()Query 接下来将演示三种常见的查找“”、“in”、“AND / OR”。 第一种指定相等条件查找书名为“活着”的书 BookManagement db.books.find({title: 活着}) [{_id: ObjectId(65b49ed320bf3de68d11029c),title: 活着,...} ]第二种使用查询运算符 $in 查找书名在下列所给出的列表中的书籍 BookManagement db.books.find({title: {$in: [活着,围城]}}) [{_id: ObjectId(65b49da320bf3de68d11029b),title: 围城,...},{_id: ObjectId(65b49ed320bf3de68d11029c),title: 活着,...} ]第二种使用查询运算符 gte查询剩余数量大于等于 10 的 BookManagement db.books.find({remainings: {$gte: 10}}) [{_id: ObjectId(65b49da320bf3de68d11029b),title: 围城,remainings: 10...} ]更多的查询运算符请查阅此文档https://www.mongodb.com/docs/manual/reference/operator/query/#query-selectors 第三种逻辑运算符 AND查找出版年份大于 1700 年并且是小说类型的 BookManagement db.books.find({publication_year: {$gt: 1700}, tags: {$in: [小说]}}) [{title: 围城,publication_year: 1947,tags: [ 小说, 讽刺文学 ],...},{title: 活着,publication_year: 1993,tags: [ 小说, 现实主义 ],...} ]从结果中可以看到《红楼梦》并没有被匹配到因为红楼梦的标签里是“古典小说”如果我们希望凡是含有“小说”的都看做是小说加上我们的 tags 是一个列表那么查询条件就成了这样查找年份大于 1700 的内部任一标签中含有“小说”字样的书。这个查询可以使用元素匹配运算符 $elemMatch 和正则运算符 $regex对 tags 中每一个标签进行匹配查询。 BookManagement db.books.find({publication_year: {$gt: 1400}, tags: {$elemMatch: {$regex: 小说}}}) [{title: 围城,publication_year: 1947,tags: [ 小说, 讽刺文学 ],...},{title: 活着,publication_year: 1993,tags: [ 小说, 现实主义 ],...},{title: 红楼梦,publication_year: 1791,tags: [ 古典小说, 传统文学 ],...} ] 第三种逻辑运算符 OR查找出版年份大于 1990 或者剩余数量大于等于 10 的 BookManagement db.books.find({$or: [{publication_year: {$gt: 1990}}, {remainings: {$gte: 10}}]})未完待续 4. Python 操作 MongoDB 5. Nodejs 操作 MongoDB 参考文献 https://www.mongodb.com/docs/manual/ https://www.mongodb.com/docs/mongodb-shell/crud/
http://www.zqtcl.cn/news/158440/

相关文章:

  • 做网站首页图片素材营销网站制作要素
  • 云阳网站建设百度对 wordpress 排名
  • 做电商网站需要多少时间网站建设答辩ppt
  • 营销型网站的案例江苏seo网站排名优化
  • 企业网站 备案 网站名称凡科做视频网站
  • 湘潭建设公司网站杭州网站优化
  • 工信部备案网站网站空间服务商
  • 深圳市企业网站seo营销工具桂林百姓网
  • 网站建设所需材料wordpress nginx配置文件
  • 给企业做网站运营广州制作网站公司
  • 一个网站可以有几个关键词网页游戏制作过程
  • 网站可视化后台桥西区网站建设
  • 个人怎么建设网站北京朝阳区最好的小区
  • 企业应该如何建设网站江苏润祥建设集团网站
  • 沈阳网站建设价格wordpress h1标签
  • 找别人做网站一般注意什么三亚专业做网站
  • 企业营销网站的建设罗湖做网站
  • 百度蜘蛛抓取新网站WordPress20w文章
  • 国际贸易网站有哪些可植入代码网站开发
  • 信息服务平台有哪些网站东莞网站关键词
  • 青岛网站定制手机软件开发和网站开发
  • 网站数据库地址是什么看企业网站怎么做到百度秒收
  • 南昌网站建设资讯wordpress dynamo
  • 网站建设招标样本南宁培训网站建设
  • 找回网站备案密码wordpress 2015主题
  • 网站电子商务平台建设域名查询系统
  • 设计制造中国第一架飞机的人是南宁百度快速优化
  • 淘宝联盟网站模板上海做企业网站
  • 繁体中文网站 怎么做wordpress禁止压缩图片
  • 怎么做图片网站百度云做.net网站