Node.js - MongoDB 快速入门



在本章中,我们将学习如何使用 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),然后双击该文件启动安装向导。

MongoDB Server

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

Custom installation

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

Directory Options

在安装向导中完成其余步骤。

创建一个目录“d:\data\db”,并在以下命令行中将其指定为 dbpath,以启动 MongoDB 服务器 -

"D:\mongodb7\mongod.exe" --dbpath="d:\data\db"

安装程序还会指导您安装 MongoDB Compass,这是一个用于与 MongoDB 服务器交互的 GUI 客户端。默认情况下,MongoDB 服务器开始在 27017 端口监听传入的连接请求。启动 Compass 应用,并使用默认连接字符串“mongodb://localhost:27017”连接到服务器。

MongoDB Compass

Ubuntu

要在Ubuntu Linux上安装MongoDB服务器,请发出以下命令以重新加载本地包数据库 -

sudo apt-get update

您现在可以安装 MongoDB 的最新稳定版本或特定版本的 MongoDB。

要安装最新的稳定版本,请发出以下命令

sudo apt-get install -y mongodb-org

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驱动程序模块 -

D:\nodejs\mongoproj>npm install 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.