在本章中,我们将学习如何使用 MongoDB 作为Node.js应用程序的后端。Node.js应用程序可以通过称为 mongodb 本身的 NPM 模块与 MongoDB 连接。MongoDB是一个面向文档的NOSQL数据库。它是一种开源的、分布式的、可水平扩展的无模式数据库架构。由于MongoDB内部使用类似JSON的格式(称为BSON)进行数据存储和传输,因此它是Node.js的天然伴侣,它本身就是一个JavaScript运行时,用于服务器端处理。
安装
MongoDB服务器软件有两种形式:社区版和企业版。MongoDB 社区版可用于 Windows、Linux 以及 MacOS 操作系统, https://www.mongodb.com/try/download/community
windows
下载最新版本的 MongoDB 安装程序 (https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.4-signed.msi),然后双击该文件启动安装向导。

选择“自定义安装”选项以指定方便的安装文件夹。

取消选中“将 MongoD 安装为服务”选项,并接受默认的数据和日志目录选项。

在安装向导中完成其余步骤。
创建一个目录“d:\data\db”,并在以下命令行中将其指定为 dbpath,以启动 MongoDB 服务器 -
安装程序还会指导您安装 MongoDB Compass,这是一个用于与 MongoDB 服务器交互的 GUI 客户端。默认情况下,MongoDB 服务器开始在 27017 端口监听传入的连接请求。启动 Compass 应用,并使用默认连接字符串“mongodb://localhost:27017”连接到服务器。
Ubuntu
要在Ubuntu Linux上安装MongoDB服务器,请发出以下命令以重新加载本地包数据库 -
您现在可以安装 MongoDB 的最新稳定版本或特定版本的 MongoDB。
要安装最新的稳定版本,请发出以下命令
MongoDB驱动程序
现在我们需要从 NPM 仓库安装 mongodb 驱动程序模块,以便 Node.js 应用程序可以与 MongoDB 交互。
使用以下命令在新文件夹中初始化新的Node.js应用程序 -
D:\nodejs\mongoproj>npm init -y
Wrote to D:\nodejs\mongoproj\package.json:
{
"name": "mongoproj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
使用以下命令从NPM存储库安装mongodb驱动程序模块 -
连接到 MongoDB
现在我们可以与MongoDB服务器建立连接。首先,使用 require() 语句从 mongodb 模块导入 MongoClient 类。通过传递 MongoDB 服务器 URL 来调用其 connect() 方法。
const { MongoClient } = require('mongodb');
// Connection URL
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);
// Database Name
const dbName = 'myProject';
async function main() {
// Use connect method to connect to the server
await client.connect();
console.log('Connected successfully to server');
const db = client.db(dbName);
const collection = db.collection('documents');
// the following code examples can be pasted here...
return 'done.';
}
main()
.then(console.log)
.catch(console.error)
.finally(() => client.close());
假设上述脚本另存为app.js,请从命令提示符运行应用程序 -
PS D:\nodejs\mongoproj> node app.js
Connected successfully to server
done.