Node.js 和 MongoDB 简介
NoSQL 数据库是存储和检索以非表格格式存在的数据的数据库。根据存储数据的格式,NoSQL 数据库分为 4 种主要类型:
- 核心价值
- 图数据库
- 面向文档
- 列族
这些数据库旨在解决传统 RDBMS 的缺点,并提供高性能、可用性和增加的可扩展性(水平),同时还处理随时间不断更改其模式的数据。当今可用的最流行的 NoSQL 数据库之一是 MongoDB。
MongoDB是一个可扩展的、高性能的、开源的、面向文档的 NoSQL 数据库,由 10gen 于 2007 年开发。它是用 C++ 编写的,它支持多种编程语言的各种 API。
MongoDB的主要特点:
- 高性能的全索引支持
- 水平可扩展和容错(分布式数据存储/分片)
- 丰富的基于文档的查询,易于阅读
- 复制和故障转移以实现高可用性
- 用于聚合的 Map/Reduce
- 支持主从复制
- 没有连接也没有交易
- 没有僵化的模式,这使它成为动态的
- 以 JSON / BSON 表示的数据
什么时候使用 MongoDB?
MongoDB可用于需要简单查询、轻松快速集成数据以及数据结构随时间不断变化的地方。例子:
- 电子商务网站
- 移动应用
- 博客和内容管理门户
- 存储地理空间数据
同时,由于它不支持事务,因此不能用于高度事务性的系统中。
SQL 与 MongoDB
MySQL 和 MongoDB 中使用的组件具有不同的术语,但功能相似。
SQL | MongoDB |
---|---|
Database | Database |
Table | Collection |
Row | Document |
Column | Field |
Index | Index |
安装 MongoDB(在 Windows 上):
转到以下链接 (https://www.mongodb.com/download-center/community) 并下载 MongoDB 社区服务器。
从这里下载 MSI 文件,然后在您的计算机中安装 MongoDB。安装完成后,打开 MongoDB Compass Community 应用程序,然后选择连接选项。
MongoDB 的本地实例现在将在本地主机上运行,端口号为 27017。
NodeJS 和 MongoDB:
Node.js 是开源 JavaScript 服务器环境,能够连接到 SQL 和 NoSQL 数据库,例如 MySQL 和 MongoDB(分别)。为了使用这些数据库,需要使用 Node Package Manager (npm) 下载和安装所需的模块。
要使用 MongoDB,需要安装Mongoose模块。
安装猫鼬:
打开命令提示符或终端并输入以下命令以安装Mongoose模块
npm install mongoose
使用 Node.js 连接到 MongoDB
以下 Node.js 脚本用于连接到 MongoDB 的本地实例。
var client = require('mongodb').MongoClient; var url = 'mongodb://localhost:27017/admin'; client.connect(url,{ useNewUrlParser: true }, function(err,db) { console.log("Connected"); db.close(); });
解释:
- 要连接数据库/创建数据库,需要创建一个 MongoClient 对象。
- MongoDB 的 URL,后面应该指定数据库名称
- 使用 MongoClient 对象的 connect函数,在服务器和 MongoDB 之间建立连接。
注意:这里使用的是 admin 数据库。
运行 Node.js 文件:
打开命令提示符并导航到包含 js 文件的文件夹,然后键入以下命令。node filename.js
注意:如果 URL 中提到的数据库在添加新文档时在 MongoDB 中不存在,则创建数据库。
从 MongoDB 查询数据:
以下代码片段用于从 MongoDB 数据库中查询数据。
var client = require('mongodb').MongoClient; var url = 'mongodb://localhost:27017/'; client.connect(url,{ useNewUrlParser: true }, function(err,db) { var dbo=db.db("admin") var cursor = dbo.collection('geeks4geeks').find(); cursor.each(function (err,doc) { if(doc!=null) console.log(doc); }); db.close(); });
解释:
- 使用 URL,与 MongoDB 服务器建立连接。
- 使用 DB函数,创建到admin数据库的连接。
- geeks4geeks集合中存在的所有文档都被检索并显示在控制台中。
注意:这里使用的是 admin 数据库,其中包含geeks4geeks集合,其中包含一些文档。
运行 Node.js 文件:
打开命令提示符并导航到包含 js 文件的文件夹,然后键入以下命令。node filename.js
这些是 admin 数据库的 geeks4geeks 集合中存在的文档。