• Node.js Video Tutorials

Node.js - MongoDB 入门



在本章中,我们将学习如何在 Node.js 应用程序中使用 MongoDB 作为后端。Node.js 应用程序可以通过名为 mongodb 的 NPM 模块与 MongoDB 进行交互。MongoDB 是一个面向文档的 NoSQL 数据库。它是一个开源的、分布式的、水平可扩展的无模式数据库架构。由于 MongoDB 在内部使用类似 JSON 的格式(称为 BSON)进行数据存储和传输,因此它是 Node.js 的自然伴侣,Node.js 本身是一个 JavaScript 运行时,用于服务器端处理。

安装

MongoDB 服务器软件有两种形式:社区版和企业版。MongoDB 社区版可在 Windows、Linux 和 MacOS 操作系统上使用,下载地址为 https://mongodb.ac.cn/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://127.0.0.1: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://127.0.0.1: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.
广告