使用 MongoDB 作为 Node.js 应用程序的数据库:教程

阅读时长 21 分钟读完

前言

MongoDB 是一个 NoSQL 数据库系统,它是由 C++ 语言编写的,为大规模数据存储提供高性能、高可用性和自动扩展等特性。它非常适合文档存储和数据处理,是 Web 开发中常用的技术之一。在本篇文章中,我们将介绍如何在 Node.js 应用程序中使用 MongoDB 完成数据存储和处理的操作,希望对 Web 开发者有所帮助。

安装 MongoDB

在开始使用 MongoDB 前,请确保已将其安装在计算机上。下面提供一些常见操作系统下的安装方法:

  • Windows

下载安装程序并按照安装向导的指导完成安装即可。下载链接:https://www.mongodb.com/download-center/community?tck=docs_server

  • macOS

可以使用 Homebrew 安装它,命令为:brew install mongodb

  • Linux

可以使用 apt 或者 yum 安装,具体可以参考官方文档:https://docs.mongodb.com/manual/administration/install-community/

当然,安装也可以更加详细和自定义,本文不再赘述。

连接 MongoDB 数据库

为了在 Node.js 中使用 MongoDB,我们需要使用官方的 Node.js 驱动程序:mongodb

接下来我们将使用 mongodb 驱动程序连接到 MongoDB 数据库。首先,我们需要通过以下命令安装 MongoDB 驱动程序,执行以下命令:

在完成安装后,我们可以按照以下步骤连接到 MongoDB 数据库:

  1. 打开命令行或者终端,输入以下命令启动 MongoDB:
  1. 启动 MongoDB 后,我们可以在我们的 Node.js 应用程序中创建一个连接,使用以下代码:

这段代码使用了 MongoClient.connect 方法连接到名为 myproject 的数据库。如果数据库不存在,MongoDB 将创建一个新的数据库。在这个例子中,我们只是创建了一个新的集合(类似于 SQL 中的表),名为 documents。我们将会在后面的代码示例中使用该集合。

插入文档

我们已经成功连接到 MongoDB 数据库,那么现在让我们尝试向数据库中添加一些文档。在 MongoDB 中,文档是由键值对组成的。键必须是一个字符串,而值可以是任意类型。

这是向数据库插入文档的示例代码:

-- -------------------- ---- -------
----- --------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ ---- ---------
  -----------------------
    - - - - -- - - - - -- - - - - -
  -- ------------- ------- -
    --------------------- - --------- ---- --- -------------
    -----------------
  ---
-
展开代码

我们可以将该函数添加到我们的连接代码中,使其能够插入文档。该函数需要传入一个数据库对象和一个回调函数,以便在插入完成后执行。

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

----- --------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ ---- ---------
  -----------------------
    - - - - -- - - - - -- - - - - -
  -- ------------- ------- -
    --------------------- - --------- ---- --- -------------
    -----------------
  ---
-
展开代码

运行该脚本后,我们将看到 "Inserted 3 documents into the collection"。我们可以通过 mongodb 命令查看数据库是否存在了新的文档:

-- -------------------- ---- -------
- ---- ---
-----   -------  
-----   -------  
---------   -------  
- --- ---------
-------- -- -- ---------
- -------------------
- ----- - ------------------------------------- --- - - -
- ----- - ------------------------------------- --- - - -
- ----- - ------------------------------------- --- - - -
展开代码

查找文档

现在我们已经向数据库中添加了文档,让我们尝试使用 find 方法查找新插入的文档。find 方法是 MongoDB 中的一个非常常用的方法,它可以用于获取集合中的所有文档或按特定条件查找文档。该方法返回一个游标对象,我们可以通过它逐个获取集合中的所有文档。

下面是示例代码:

-- -------------------- ---- -------
----- ------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ---- ---- ---------
  ----------------------------------------- ----- -
    ------------------ --- --------- ------------
    -----------------
    ---------------
  ---
-
展开代码

我们可以将该函数添加到我们的连接代码中,并执行该函数来查找之前添加的文档。

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

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

----- ------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ---- ---- ---------
  ----------------------------------------- ----- -
    ------------------ --- --------- ------------
    -----------------
    ---------------
  ---
-
展开代码

运行该脚本后,我们应该看到以下输出:

更新文档

MongoDB 中的 update 方法用于更新文档。该方法需要传入要更新的文档,以及要更新的字段和值。下面是示例代码:

-- -------------------- ---- -------
----- -------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ -------- ----- - -- -- --- - ----- -- -
  ---------------------- - - - -
    - - ----- - - - - - -- ------------- ------- -
    -------------------- --- -------- ---- --- ----- - ----- -- ----
    -----------------
  ---  
-
展开代码

在这个示例中,我们使用 updateOne 方法更新了一个文档。我们使用了一个查询条件 { a : 2 } 来找到需要更新的文档,并将其 { b : 1 } 重命名。当然,我们还可以使用其他方法,如 updateMany (更新多个文档) 或 replaceOne (替换一个文档) 来更新数据库中的文档。

我们可以将该函数添加到我们的连接代码中,并执行该函数来更新已经添加过的文档。

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

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

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

----- ------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ---- ---- ---------
  ----------------------------------------- ----- -
    ------------------ --- --------- ------------
    -----------------
    ---------------
  ---
-
展开代码

当我们运行脚本时,我们应该看到以下输出:

可以看到,在更新后,文档 { a : 2 } 中的字段 b 已被重命名为了 1

删除文档

MongoDB 中的 delete 方法用于删除文档。该方法需要传入要删除的文档。下面是示例代码:

-- -------------------- ---- -------
----- -------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ -------- ----- - -- -
  ---------------------- - - - -- ------------- ------- -
    -------------------- --- -------- ---- --- ----- - ----- -- ----
    -----------------
  ---    
-
展开代码

在这个示例中,我们使用 deleteOne 方法删除了一个文档。我们使用了一个查询条件 { a : 3 } 来找到需要删除的文档。当然,我们还可以使用 deleteMany 方法(删除多个文档)来从数据库中删除文档。

我们可以将该函数添加到我们的连接代码中,并执行该函数来删除之前添加过的文档。

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

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

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

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

----- ------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ---- ---- ---------
  ----------------------------------------- ----- -
    ------------------ --- --------- ------------
    -----------------
    ---------------
  ---
-
展开代码

当我们运行脚本时,我们应该看到以下输出:

现在,我们已经知道了如何在 Node.js 应用程序中使用 MongoDB 完成基本的 CRUD 操作。下面是一个总结:

  • 连接 MongoDB 数据库:
  • 插入文档:
-- -------------------- ---- -------
----- --------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ ---- ---------
  -----------------------
    - - - - -- - - - - -- - - - - -
  -- ------------- ------- -
    --------------------- - --------- ---- --- -------------
    -----------------
  ---
-
展开代码
  • 查找文档:
-- -------------------- ---- -------
----- ------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ---- ---- ---------
  ----------------------------------------- ----- -
    ------------------ --- --------- ------------
    -----------------
    ---------------
  ---
-
展开代码
  • 更新文档:
-- -------------------- ---- -------
----- -------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ -------- ----- - -- -- --- - ----- -- -
  ---------------------- - - - -
    - - ----- - - - - - -- ------------- ------- -
    -------------------- --- -------- ---- --- ----- - ----- -- ----
    -----------------
  ---  
-
展开代码
  • 删除文档:
-- -------------------- ---- -------
----- -------------- - ------------ --------- -
  -- --- --- --------- ----------
  ----- ---------- - ---------------------------
  -- ------ -------- ----- - -- -
  ---------------------- - - - -- ------------- ------- -
    -------------------- --- -------- ---- --- ----- - ----- -- ----
    -----------------
  ---
-
展开代码

结论

以上就是在 Node.js 应用程序中使用 MongoDB 完成数据存储和处理的基本操作。当然,如何在 Node.js 应用程序中使用 MongoDB 还有很多细节和高级用法需要学习。但是,我们相信在学习了本文之后,大家可以更加

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

纠错
反馈

纠错反馈