MongoDB 数据库(一):MongoDB的介绍与安装

2023-11-13

一、MongoDB数据库的介绍与安装

1.1 NoSQL数据库简介

最常见的数据库可以分为下面的两种类型:

  1. RDBMS(关系型数据库): 常见的关系型数据库有 Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL;
  2. NoSQL(非关系型数据库): 常见的非关系型数据库有 MongoDB、Redis、Cassandra、Hbase、Neo4j 等。

NoSQL 全称为 Not only SQL,它仅仅是一个概念,用来表示非关系型数据库,本文中将要介绍的 MongoDB 就是非关系型数据库的一种。相对于 RDBMS(关系型数据库),NoSQL 具有以下优点:

  1. 易扩展:NoSQL 数据库种类繁多,但它们都有一个共同的特点,那就是都去掉了关系型数据库的关系型特性,数据与数据之间没有关系,这样就非常容易扩展,无形之间也在架构的层面上带来了可扩展的能力;
  2. 大数据量,高性能:NoSQL 数据库都具有非常高的读写性能,尤其是在处理庞大数据时表现优秀;
  3. 灵活:NoSQL 随时都可以存储任意类型的数据,无须提前为要存储的数据建立字段;
  4. 高可用:NoSQL 在不太影响性能的情况下,就可以方便地实现高可用的架构,比如 Cassandra、HBase 模型,通过复制模型也能实现高可用。

为什么使用 NoSQL? 随着互联网的不断发展,传统的关系型数据库在处理超大规模数据以及开发高并发应用时已经显得力不从心了,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的问题,特别是大数据应用的难题。

体系框架:NoSQL 整体框架分为四层,由下至上分别为 数据持久层(data persistence)、整体分布层(data distribution model)、数据逻辑模型层(data logical model)、和接口层(interface), 层次之间相辅相成,协调工作。

1、数据持久层: 数据持久层定义了数据的存储形式,主要包括基于内存、硬盘、内存与硬盘相结合、订制可插拔四种形式。

基于内存形式的数据存取速度最快,但可能会造成数据丢失
基于硬盘的数据可能保存很久,但存取速度较基于内存的形式慢
内存和硬盘相结合的形式,结合了前两种形式的优点,既保证了速度,又保证了数据不丢失
订制可插拔则保证了数据存取具有较高的灵活性

2、数据分布层: 数据分布层定义了数据是如何分布的,相对于关系型数据库,NoSQL 可选的机制比较多,主要有三种形式:

CAP 支持: 可用于水平扩展
多数据中心支持: 可以保证在横跨多数据中心时也能够平稳运行
动态部署支持: 可以在运行着的集群中动态地添加或删除节点

3、数据逻辑层: 数据逻辑层表述了数据的逻辑表现形式,与关系型数据库相比,NoSQL 在逻辑表现形式上相当灵活,主要有四种形式:

键值模型: 这种模型在表现形式上比较单一,却有很强的扩展性
列式模型: 这种模型相比于键值模型能够支持较为复杂的数据,但扩展性相对较差
文档模型: 这种模型对于复杂数据的支持和扩展性都有很大优势
图模型: 这种模型的使用场景不多,通常是基于图数据结构的数据定制的

4、接口层: 接口层为上层应用提供了方便的数据调用接口,提供的选择远多于关系型数据库。接口层提供了五种选择,分别是 Rest、Thrift、Map/Reduce、Get/Put 和特定语言 API,使得应用程序在与数据库交互时更加方便。

NoSQL 分层架构并不代表每个产品在每一层只有一种选择。相反,这种分层设计提供了很大的灵活性和兼容性,每种数据库在不同层面可以支持多种特性。NoSQL 数据库在以下的这几种情况下比较适用:

数据模型比较简单;
对灵活性要求很强的系统;
对数据库性能要求较高;
不需要高度的数据一致性;
对于给定 key,比较容易映射复杂值的环境。

1.2 MongoDB 简介

MongoDB 是一个开源的、可扩展的、跨平台的、面向文档的非关系型数据库,它由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

在 MongoDB 中支持以类似 json 的 bson(一种计算机数据交换格式) 格式来存储数据,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象语言中函数调用,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还可以对数据建立索引。MongoDB官网: https://www.mongodb.com/

1.2.1 再议业务应用场景

传统的关系型数据库(如MySQL),在数据操作的 三高 需求以及应对 Web2.0及Web3.0 的网站需求面前,显得力不从心。三高 需求:

High performance - 对数据库高并发读写的需求
Huge Storage - 对海量数据的高效率存储和访问的需求
High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求。

MongoDB 可应对 三高 需求。具体的应用场景如:

社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问
物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有
的变更读取出来
物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
视频直播,使用 MongoDB 存储用户信息、点赞互动信息等

这些应用场景中,数据操作方面的共同特点是:

数据量大
写入操作频繁(读写都很频繁)
价值较低的数据,对事务性要求不高

对于这样的数据,我们更适合使用 MongoDB 来实现数据的存储。什么时候选择 MongoDB? 在架构选型上,除了上述的三个特点外,如果你还犹豫是否要选择它?可以考虑以下的一些问题:

应用不需要事务及复杂 join 支持
新应用,需求会变,数据模型无法确定,想快速迭代开发
应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至 PB 级别数据存储
应用发展迅速,需要能快速水平扩展
应用要求存储的数据不丢失
应用需要99.999%高可用
应用需要大量的地理位置查询、文本查询

如果上述有1个符合,可以考虑 MongoDB,2个及以上的符合,选择 MongoDB 绝不会后悔。

1.2.2 为什么要使用 MongoDB

市面上的数据库软件众多,我们为什么要选择 MongoDB 呢?换句话说就是 MongDB 有什么优势呢?下面列举了几点原因。

1、面向文档。 由于 MongoDB 是 NoSQL 类型的数据库,它不是像关系类型数据库那样以固定的格式存储数据,而是将数据存储在文档中,这使 MongoDB 非常灵活,可以适应实际的商业环境和需求。

2、临时查询。 MongoDB 支持按字段、范围和正则表达式查询并返回文档中的数据

3、索引。 可以创建索引以提高 MongoDB 中的搜索性能,文档中的任何字段都可以建立索引

4、复制。 MongoDB 支持高可用性的副本集。副本集由两个或多个 MongoDB 数据库实例组成,每个副本集成员可以随时充当主副本或辅助副本的角色,主副本是与客户端交互并执行所有读/写操作的主服务器。辅助副本使用内置复制维护主副本种的数据。当主副本失败时,副本集将自动切换到辅助副本,然后将辅助副本作为主服务器;

5、负载平衡。 MongoDB 可以在多台服务器上运行,以平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。

1.2.3 适用场景

MongoDB 的主要目标是在键/值存储方式和传统的 RDBMS(关系型数据库) 系统之间架起一座桥梁,它集两者的优势于一身。根据官方网站的描述,MongoDB 适用于以下场景:

1、网站数据。 MongoDB 非常适合实时的插入、更新与查询数据,并具备网站实时存储数据所需的复制及高度伸缩的特性

2、缓存。 由于性能很高,MongoDB 也适合作为信息基础设施的缓存层,在系统重启之后,由 MongoDB 搭建的持久化缓存层可以避免下层的数据源过载

3、庞大的、低价值的数据。 使用传统的关系型数据库存取大量数据时,数据库的运行效率往往并不尽人意,而 MongoDB 的出现使这个问题迎刃而解,MongoDB 非常适合庞大数据的存储

4、高伸缩性的场景。 MongoDB 内置了 MapReduce 引擎,因此非常适合由数十或数百台服务器组成的数据库

5、用于对象及 JSON 数据的存储。 MongoDB 的 BSON 数据格式非常适合文档化格式的存储及查询。

说了这么多 MongoDB 的好处,但它也不是万能的,比如以下这几个地方就不适合使用 MongoDB:

1、高度事务性的系统: 例如银行或会计系统,传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序

2、传统的商业智能应用: 针对特定问题的 BI(全称 Business Intelligence,中文意思为 商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值)数据库会产生高度优化的查询方式,对于此类应用,数据仓库可能是更合适的选择

3、需要复杂 SQL 查询的应用

二、安装和使用MongoDB客户端

2.1 Windows 安装 MongoDB

提示:下载前需要先注册/登陆 MongoDB 官网的账号。

要在 Windows 系统上安装 MongoDB,首先需要在 MongoDB 的官网 https://www.mongodb.com/try/download/community 下载 MongoDB 的安装包,如下图所示:
在这里插入图片描述
下载完成之后,如下图所示:
在这里插入图片描述
双击运行我们刚刚下载的 .msi 格式的 MongoDB 安装包,在弹出的窗口中单击 Next,如下图所示:
在这里插入图片描述
接受用户许可协议,并单击 Next,如下图所示:
在这里插入图片描述
单击 Custom(自定义) 按钮来自定义安装,如下图所示:
在这里插入图片描述
修改安装目录,并单击 Next,如下图所示:
在这里插入图片描述
选中 Install MongoDB as a Service,并在下面的选项中选择 Run service as Network Service user,完成后单击 Next,如下图所示:
在这里插入图片描述
取消 Install MongoDB Compass 的勾选(当然也可以选择安装它,但这样就需要花费更久的安装时间),MongoDB Compass 是一个图形界面管理工具,后面如果需要我们也可以再单独下载 (https://www.mongodb.com/try/download/compass) 和安装它,完成上述操作后单击 Next,如下图所示:
在这里插入图片描述
单击 Install 按钮开始安装。如下图所示:
在这里插入图片描述
可能会弹出以下对话框,单击 即可:
在这里插入图片描述
等待安装完成,单击 Finish 按钮退出安装程序即可完成安装,如下图所示:
在这里插入图片描述
验证安装: 不出意外的话,完成上面的一系列操作后 MongoDB 就成功安装到电脑上了。想要验证安装是否成功,可以打开 服务,如果能在服务列表中找到 MongoDB Server,就说明 MongoDB 已经安装成功。打开服务,如下图所示:
在这里插入图片描述
在这里插入图片描述

2.2 Linux-Centos7 安装 MongoDB

下载:https://www.mongodb.com/try/download/community-kubernetes-operator 选择 Linux-Centos7 版本:
在这里插入图片描述
下载好的安装包如下图所示:
在这里插入图片描述
将下载好之后的安装包上传到 Linux 机器上,如下图所示:
在这里插入图片描述
解压到当前目录:tar -zxvf mongodb-linux-x86_64-rhel70-4.4.17.tgz
移动解压后的文件夹到指定的目录中:mv mongodb-linux-x86_64-rhel70-4.4.17 /usr/local/mongodb
新建几个目录,分别用来存储数据和日志:

#数据存储目录
mkdir -p /mongodb/single/data/db
#日志存储目录
mkdir -p /mongodb/single/log

新建并修改配置文件,vim /mongodb/single/mongod.conf

systemLog:
	#MongoDB发送所有日志输出的目标指定为文件
	# #The path of the log file to which mongod or mongos should send all diagnostic logging information
	destination: file
	#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
	path: "/mongodb/single/log/mongod.log"
	#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
	logAppend: true
storage:
	#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
	##The directory where the mongod instance stores its data.Default Value is "/data/db".
	dbPath: "/mongodb/single/data/db"
	journal:
		#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
		enabled: true
processManagement:
	#启用在后台运行mongos或mongod进程的守护进程模式。
	fork: true
net:
	#服务实例绑定的IP,默认是localhost
	bindIp: 0.0.0.0
	#bindIp
	#绑定的端口,默认是27017
	port: 27017
security:
    # 添加如下权限认证配置
	authorization: enabled

启动MongoDB服务:/usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf,如下图所示:
在这里插入图片描述
如果启动后不是 successfully ,则是启动失败了。原因基本上就是配置文件有问题。通过进程来查看服务是否启动了:
在这里插入图片描述
停止服务的方式有两种:快速关闭和标准关闭,下面依次说明:快速关闭方法(快速,简单,数据可能会出错)目标,通过系统的 kill 命令直接杀死进程

#通过进程编号关闭节点
kill -9 24011

杀完要检查一下,避免有的没有杀掉。如果一旦是因为数据损坏,则需要进行如下操作(了解):

删除 lock 文件: rm -f /mongodb/single/data/db/*.lock
修复数据: /usr/local/mongdb/bin/mongod --repair --dbpath=/mongodb/single/data/db

标准的关闭方法(数据不容易出错,但麻烦),目标:通过 mongo 客户端中的 shutdownServer 命令来关闭服务,主要的操作步骤参考如下:

//客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
mongo --port 27017
//#切换到admin库
use admin
//关闭服务
db.shutdownServer()

2.3 安装Studio 3T

下载地址:

链接:https://pan.baidu.com/s/1hhoe1Dacfk19StJzAcxZ1g 
提取码:subm 
--来自百度网盘超级会员V8的分享

双击下载好的可执行文件,如下图所示:
在这里插入图片描述

接受协议,单击 Next 按钮,如下图所示:

单击 change 按钮,选择安装路径,路径选择完成之后,单击 Next 按钮,如下图所示:

单击 Install 按钮,开始安装,如下图所示:

安装完成之后,勾选运行 Studio 3T 复选框,单击 Finish 按钮,如下图所示:


在这里插入图片描述
填写个人信息,如下图所示:


在这里插入图片描述
在这里插入图片描述




在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 数据库(一):MongoDB的介绍与安装 的相关文章

  • 如何在 mongodb 聚合管道中使用 Javascript 对象?

    我有一个 JS 对象norm我想在 mongo 聚合管道中使用它 如下所示 var norm 1 1 2 1 16 3 1 413 4 1 622 5 1 6 6 1 753 7 3 001 8 2 818 9 3 291 10 2 824
  • 查询 MongoDB 集合中的字段。

    我正在尝试查询 mongodb 集合中的特定字段 这是我的代码和输出 Mongo m new Mongo DB db m getDB mydb DBCollection coll db getCollection student addin
  • ReferenceError:MongoDB shell 中未定义 require

    我尝试通过 Windows 命令 Windows 8 1 从 Mongo 客户端连接 MongoDB 当我使用require 在 javascript 中 我遇到如下错误 有人有同样的问题吗 我有错过任何一个吗require有关的npm安装
  • MongoDB:如果使用 $addToSet 或 $push,是否应该预先分配文档?

    我一直在研究 MongoDB 我知道强烈建议在插入时完全构建 预分配 文档结构 这样将来对该文档的更改不需要移动该文档磁盘周围 这在使用 addToSet 或 push 时适用吗 例如 假设我有以下文档 id rsMH4GxtduZZfxQ
  • 一次更新猫鼬中的多个文档

    我有一个用户文档数组 每个用户都有关注者属性 它是一个数字 我只想将此属性增加 1 然后立即更新数据库中的所有这些用户文档 更多细节 在请求中 我有一组用户 id 我使用这些 id 进行查询以获取一组用户文档 const users awa
  • MongoDB中如何通过引用字段进行查询?

    我有两个 Mongo 模式 User id ObjectId name String country ObjectId Reference to schema Country Country id ObjectId name String
  • Express中间件修改请求

    我目前有一个正在运行的服务器 前端使用nodejs mongo express 和 W2UI W2ui 请求来自包含所有参数的记录数组 记录 名称 foo 我想编写一个中间件 在请求到达路由之前对其进行编辑和更改 您可以创建自己的中间件来处
  • 通过 elemMatch 在 MongoDB 中排序

    MongoDB 有没有一种基于排序的方法 elemMatch 例如 我有如下所示的文档 user ObjectId fsdfsdf array of things attribute 1 ObjectId sdfsdfsd attribut
  • Meteor.setTimeout 和 Meteor.methods 之间的并发

    在我的 Meteor 应用程序中实现回合制多人游戏服务器 客户端通过发布 订阅接收游戏状态 并且可以调用 Meteor 方法sendTurn将回合数据发送到服务器 他们无法直接更新游戏状态集合 var endRound function g
  • 在 Meteor 中运行示例的问题

    我正在测试 Meteor 示例 这是我运行时看到的meteor在待办事项示例中 Unexpected mongo exit code 100 Restarting Unexpected mongo exit code 100 Restart
  • Node.js 和 Passport 对象没有 validPassword 方法

    我正在使用 Node js Express Passport 创建一个简单的身份验证 本地 到目前为止我所达到的效果是 当输入错误的用户名或密码时 用户将被重定向到错误页面 但是当用户输入正确的用户名和密码时 我收到此错误 node mod
  • Spring Data MongoDB:聚合框架 - 使用嵌套属性进行排序会抛出无效引用

    I found Spring论坛上的这篇文章 http forum spring io forum spring projects data nosql 130522 spring data mongodb aggregation fram
  • Mongoose 和 Promise:如何获取查询结果数组?

    使用猫鼬从数据库和 Q 中查询结果以获取承诺 但发现很难只获取可用用户列表 目前我有一些这样的东西 var checkForPerson function person people mongoose model Person Person
  • 从 Azure 应用服务连接到 MongoDB Atlas 集群

    我在 Azure 上有一个 Web 应用程序 它连接到 Atlas cloud mongodb com 上托管的 MongoDB 集群 我想使用 Atlas 这样我就不必关心 MongoDb 配置 问题是我的集群连接超时 我必须在我的 mo
  • 表情符号未正确保存在 mongodb 中

    我正在将 Twitter 和 Instagram 上的表情符号保存到我的 mongodb 数据库中 但是当我显示从数据库中提取的数据时 表情符号看起来像这样破损了 在将数据保存到 mongodb 期间我需要做一些不同的事情吗 我是 mong
  • 使用 Node.js mongodb 本机调用 db.destroyDatabase 时,什么可能导致“拓扑被破坏”错误?

    我正在使用 Node js Mongodb 本机驱动程序运行一些集成测试 每个测试都涉及连接到数据库 验证它是否尚不存在 例如 没有任何带有文档的集合 运行测试 然后删除数据库 高级代码如下 const runSafeTest functi
  • 以 Rails 形式处理 MongoMapper EmbeddedDocument

    首先 我对一般编程和 Rails 都是新手 我选择 Rails 是因为它看起来是一种很容易上手的语言 对于我的项目 我将 MongoMapper 与 Rails 结合使用 我正在尝试以与文档相同的形式处理嵌入文档 我有以下模型 class
  • MongoDB:计算数组中的项目数

    我有一个集合 其中集合中的每个文档都有一个名为的数组foo包含一组嵌入文档 目前 MongoDB shell 中是否有一种简单的方法来计算其中有多少个实例foo 就像是 db mycollection foos count or db my
  • MongoDB中批量FindAndModify的解决方案

    我的用例如下 我在 mongoDB 中有一组文档 我必须发送这些文档进行分析 文件格式如下 id ObjectId 517e769164702dacea7c40d8 日期 1359911127494 状态 可用 其他字段 我有一个阅读器进程
  • 在 Meteor 应用程序中实现 MongoDB 2.4 的全文搜索

    我正在考虑向 Meteor 应用程序添加全文搜索 我知道 MongoDB 现在支持此功能 但我对实现有一些疑问 启用文本搜索功能的最佳方法是什么 textSearchEnabled true 在 Meteor 应用程序中 有没有办法添加索引

随机推荐

  • 最全常用正则表达式大全

    一 校验数字的表达式 1 数字 0 9 2 n位的数字 d n 3 至少n位的数字 d n 4 m n位的数字 d m n 5 零和非零开头的数字 0 1 9 0 9 6 非零开头的最多带两位小数的数字 1 9 0 9 0 9 1 2 7
  • eclipse中包里建包

    1 设置Package Presentation 为Hierarchical 最为关键一步 2 在src下新建一个名为com abc hrm的包 名字根据自己需要而定 3 在父包下新建子包a 4 继续在父包 com abc hrm a 下新
  • Java基础学习——Java线程(二)同步代码块、同步方法、Lock锁、死锁程序例子、不同类型的锁

    对于之前买票的练习 又出现多个10张票的情况 这里对这一现象进行分析 对于代码 for int i 1 i lt 100 i if ticketNum gt 0 System out println 我在 this getName 买到了第
  • vue - Vue介绍

    一 初始化Vue脚手架 1 说明 一般脚手架选择最新版本 2 具体步骤 全局安装vue cli脚手架 切换到项目目录 运行 vue create 加一个非主流库的名字 即可创建一个vue项目 运行 npm run serve 将项目在服务器
  • 跳跃线性链表容器

    此容器用于将ArrayList与LinkedList进行结合 利于容纳大量数据之后对容器的中间段进行增删 一般而言 ArrayList的性能总是快于LinkedList 只在容纳大量数据后 对容器的起始区域进行增删时 LinkedList才
  • 浙江大学提出自感知IMU网络精准捕获3D变形

    运动捕捉目前有两种主流方法 视觉捕捉能捕获复杂的三维几何变形 但依赖于昂贵的光学设备并且存在视线遮挡问题 基于IMU的方法虽然简便 但难以捕获细微的3D变形 为了解决这个问题 浙江大学的研究者们提出了一种可配置的自感知IMU传感器网络 解决
  • Rabbitmq入门到进阶看这篇就够了!

    安装前提 安装 erlang windows用户名非中文 可以关注我的公众号 知识追寻者 回复 rabbitmq 获取已经下载好的安装包和配套源码地址 本套教程对应知识追寻者网址 windows安装rabbitmq zszxz com Ra
  • 【IEEE】2022年第四届欧亚计算机科学与信息技术国际会议(FCSIT 2022)

    2022年第四届欧亚计算机科学与信息技术国际会议 FCSIT 2022 重要信息 会议网址 www ecfcsit org 会议时间 2022年12月16 18日 召开地点 中国北京 出版社 IEEE CPS 截稿时间 2022年10月31
  • mqtt.js

    什么是MQTT协议 MQTT Message Queuing Telemetry Transport 消息队列遥测传输协议 是一种基于发布 订阅 publish subscribe 模式的 轻量级 通讯协议 该协议构建于TCP IP协议上
  • [Hadoop] start-dfs.sh ssh报错

    Permission denied publickey 决解方案 相关命令 cd ssh ssh keygen t rsa p cat id rsa pub gt gt authorized keys chmod 0600 authoriz
  • yml基本语法

    1 基本语法 格式要求 k 空格 v 表示一对键值对 空格必须有 以空格的缩进来控制层级关系 只要是左对齐的一列数据 都是同一个层级的 server port 8081 path hello 1 2 3 属性和值也是大小写敏感 2 值的写法
  • R语言绘制PCA双标图、碎石图、变量载荷图和变量贡献图

    1 原论文数据双标图 代码 setwd D Desktop 0000 R 更改路径 导入数据 df lt read table Input data csv header T sep 所需的包 packages lt c ggplot2 t
  • java entityframework,entity-framework – 实体框架核心DbContext和依赖注入

    您可以通过构造函数注入将dbcontext从数据访问层添加到类中来解决此问题 public class Startup public void ConfigureServices IServiceCollection services se
  • Flex布局--骰子布局

    Flex布局 骰子布局 1点骰子 html css box1 width 100px height 100px border 1px solid pink margin right 3px background color ffffff d
  • 2.4g 无线通讯至服务器,WiFi、2.4G、433M、GPRS无线通讯方式的区别

    原标题 WiFi 2 4G 433M GPRS无线通讯方式的区别 WiFi 2 4G 433M GPRS是目前深圳信立重点推荐的且比较常用的无线通讯方式 被大量应用于供排水管网 热力管网 农业大棚 养殖场 馆藏仓库 储罐 实验室 工厂车间
  • 判断字符串非空if(str!=null && str!=""){}

    熟手判断字符串非空一般都会做两次判断 if str null str 或者 if str null str length 0 或者 if str null str equals 为什么要这么麻烦呢 相信大家都遇到过空指针报错的情况 java
  • python异常模块raise的概念以及基本用法

    当程序出现错误 python会自动引发异常 也可以通过raise显示地引发异常 一旦执行了raise语句 raise后面的语句将不能执行 raise 用raise语句来引发一个异常 异常 错误对象必须有一个名字 且它们应是Error或Exc
  • 多视图综述以及图像检索

    1 1 算法分类 1 1 1 协同训练 该方法旨在最大限度地扩展所有观点的相互协议 并达成最广泛的共识 协同训练算法一般过程如图1所示 根据该过程对算法进行交替训练 利用先验信息或相互学习知识 使两种不同视图的一致性最大化 Co train
  • 秦九韶算法详解

    秦九韶算法 秦九韶算法是将一元n次多项式的求值问题转化为n个一次式的算法 比普通计算方式提高了一个数量级 普通算式 a x i 因为多次求幂 消耗了大量的计算时间 我们来分析一下秦九韶算法 例如 求 1 x 2x 2 3x 3 当x 2时的
  • MongoDB 数据库(一):MongoDB的介绍与安装

    目录 一 MongoDB数据库的介绍与安装 1 1 NoSQL数据库简介 1 2 MongoDB 简介 1 2 1 再议业务应用场景 1 2 2 为什么要使用 MongoDB 1 2 3 适用场景 二 安装和使用MongoDB客户端 2 1