MongoDB 在 Node.js 中的应用

阅读时长 9 分钟读完

前言

随着前端交互越来越复杂,需要在服务端进行处理的业务也越来越多,因此,Node.js 这个基于事件驱动的异步 I/O 框架成为了前端工程师在服务端开发的首选,而 MongoDB 就是 Node.js 中最受欢迎的数据库之一。MongoDB 是一个基于文档的 NoSQL 数据库,它能够轻松存储海量的非结构化数据。本文将详细介绍 MongoDB 在 Node.js 中的应用。

MongoDB 简介

MongoDB 是一个开源的 NoSQL 数据库,特点是存储非结构化数据,使用 JSON 格式存储。MongoDB 的文档是使用 BSON(一种二进制形式的 JSON)格式存储的,是一种非常灵活的数据存储方案。MongoDB 的文档是一个键值对的集合,类似于 JavaScript 中的对象。常见的操作包括增删改查、索引、聚合等。

安装 MongoDB

在 Node.js 中使用 MongoDB 需要先安装 MongoDB 数据库。在 macOS 上,可以使用 Homebrew 安装 MongoDB:

在 Ubuntu 上,可以使用 apt-get 安装 MongoDB:

使用 MongoDB

使用 Node.js 操作 MongoDB 需要使用 MongoDB Node.js 驱动程序。可以使用 NPM 安装:

在代码中引入 MongoDB 模块:

在此代码中,我们使用 MongoClient.connect() 与 MongoDB 建立连接。其中,url 是 MongoDB 连接字符串,指定了连接的 MongoDB 实例 URL;db 是 MongoDB 数据库实例。这个简单的代码片段说明了如何用 Node.js 连接 MongoDB。

CRUD 操作

CRUD 操作是常见的 MongoDB 操作之一,包含增加(create)、查询(read)、更新(update)和删除(delete)四个操作。我们将介绍 MongoDB Node.js 驱动程序中的 CRUD 操作示例代码。

Create(增加)

添加一条数据,可以使用 MongoClient.connect() 连接到 MongoDB 后,调用 db.collection(“collectionName”).insertOne() 方法:

-- -------------------- ---- -------
----- ----------- - -------------------------------
----- --- - --------------------------------------

------------------------ ------------- --- -
  -- ----- ----- ----
  ----- ----- - - ----- ------- ---- ------------ --
  -------------------------------------- ------------- ---- -
    -- ----- ----- ----
    ----------------------
    -----------
  ---
---

Read(查询)

查询数据可以使用 MongoClient.connect() 连接到 MongoDB 后,调用 db.collection(“collectionName”).find() 方法:

-- -------------------- ---- -------
----- ----------- - -------------------------------
----- --- - --------------------------------------

------------------------ ------------- --- -
  -- ----- ----- ----
  ----- --- - -------------------
  ----------------------------------------------------- ------- -
    -- ----- ----- ----
    --------------------
    -----------
  ---
---

Update(更新)

更新数据可以使用 MongoClient.connect() 连接到 MongoDB 后,调用 db.collection(“collectionName”).updateOne() 方法:

-- -------------------- ---- -------
----- ----------- - -------------------------------
----- --- - --------------------------------------

------------------------ ------------- --- -
  -- ----- ----- ----
  ----- --- - -------------------
  ----- -------- - - ------- ------ --  -- ----
  ----- --------- - - ----- - ------ ---------------- - --
  ------------------------------------------ ---------- ------------- ---- -
    -- ----- ----- ----
    ----------------------
    -----------
  ---
---

Delete(删除)

删除数据可以使用 MongoClient.connect() 连接到 MongoDB 后,调用 db.collection(“collectionName”).deleteOne() 方法:

-- -------------------- ---- -------
----- ----------- - -------------------------------
----- --- - --------------------------------------

------------------------ ------------- --- -
  -- ----- ----- ----
  ----- --- - -------------------
  ----- -------- - - ------- ------ --  -- ----
  ------------------------------------------ ------------- ---- -
    -- ----- ----- ----
    ----------------------
    -----------
  ---
---

索引

索引是 MongoDB 中关键的优化技术之一,能够显著提高查询性能。MongoDB 支持多种类型的索引,包括单字段索引、复合索引、文本索引等。我们将使用 Node.js 演示如何在 MongoDB 中创建索引:

-- -------------------- ---- -------
----- ----------- - -------------------------------
----- --- - --------------------------------------

------------------------ ------------- --- -
  -- ----- ----- ----
  ----- --- - -------------------
  ----- ----- - - ----- --------- ---- ---------------- --
  ------------------------------------ ------- - -- ------------- ---- -
    -- ----- ----- ----
    ----------------------
    -----------
  ---
---

在此代码中,我们使用 dbo.collection(“collectionName”).createIndex() 方法创建单字段索引。示例中以 name 字段为索引字段,并将索引类型设置为升序排列。

聚合

MongoDB 的聚合操作和 SQL 中的 GROUP BY 类似,可以实现数据的分类统计。聚合操作包括分组($group)、筛选($match)、排序($sort)、限制输出($limit)等。

-- -------------------- ---- -------
----- ----------- - -------------------------------
----- --- - --------------------------------------

------------------------ ------------- --- -
  -- ----- ----- ----
  ----- --- - -------------------
  ------------------------------------
    - ------- - ------- --- - --
    - ------- - ---- ----------- ------ - ----- --------- - - -
  ------------------------ ------- -
    -- ----- ----- ----
    --------------------
    -----------
  ---
---

在此代码中,我们使用 dbo.collection(“collectionName”).aggregate() 方法执行聚合操作。该例子将 orders 文档的 status 属性值为 “A” 的数据筛选出来,然后根据 cust_id 属性进行分组统计,统计的字段为 amount,最后将结果输出。

总结

本文介绍了 MongoDB 在 Node.js 中的应用,包括了 MongoDB 的基本概念与安装、使用 MongoDB Node.js 驱动程序、CRUD 操作、索引、聚合等。通过学习本文,读者可以了解 MongoDB 在 Node.js 中的应用,掌握基本的 MongoDB 操作。希望本文对前端开发工程师在服务端开发上有所帮助。www.runoob.com 网站提供了更多 MongoDB 教程,读者可以深入了解。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645df2fe968c7c53b004e827

纠错
反馈