Node.js 中如何使用 Mongoose 操作 MongoDB 数据库

阅读时长 7 分钟读完

相信大家在学习 Node.js 的过程中多少都听说过 MongoDB,这是一个具有高度扩展性和可伸缩性的文档型 NoSQL 数据库。而 Node.js 在处理 MongoDB 数据库方面的表现也非常的出色,其中 Mongoose 可以说是最为流行的连接器之一。本文将会介绍如何在 Node.js 中使用 Mongoose 来操作 MongoDB 数据库。

什么是 Mongoose

Mongoose 是一个为 Node.js 设计的 MongoDB 对象模型工具。 它提供了一种基于模式的方法,可以定义模型,这些模型可以被映射到 MongoDB 集合。Mongoose 还提供了很多内置的中间件,以便在执行某些操作时添加额外的逻辑。它还提供了让您更轻松地将 MongoDB 与 Node.js 集成的方法,以便可以轻松地处理数据存储或获取。

安装 Mongoose

Mongoose 是一款非常流行的库,并且非常适合使用npm进行安装。

连接 MongoDB 数据库

首先,我们需要连接到 MongoDB 数据库从而开始使用 Mongoose。你需要在你的应用程序中创建一个连接器,此连接器将会使用MongoDB://localhost/myDatabase会尝试连接到本地数据库。

我们通过mongoose模块的connect()方法连接上了带有myDatabase名称的本地 MongoDB 数据库。其中,useNewUrlParser:trueuseUnifiedTopology:true参数确保我们可以在新版本的 MongoDB 节点上使用所有新的服务器发现和监视引擎。

定义模式与模型

Mongoose 建立在模式和模型上。模式表示文档的结构,指定集合中模型的字段,属性和默认值等。模型则表示集合本身,允许您对集合上的文档执行操作。现在,我们将定义一个 person.js 模块,该模块将包含 Person 模型的名称和模式。

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

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

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

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

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

在 MongoDB 中插入数据

现在我们来插入一个人的实例到一个名为 people 的集合中:

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

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

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

在这个例子中,我们创建了一个 Person 实例,并将其保存到 MongoDB 集合。在保存了一个人的实例后,我们关闭了连接。 记住,由于 Node.js 的异步特性,保存完成后才能断开与 MongoDB 的连接。因此,我们将断开的语句放在回调函数中。

在 MongoDB 中查找数据

对于查找 MongoDB 中存储的文档,Mongoose 提供了一种非常简单的方法,就是使用find()方法查询:

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

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

在此示例中,我们使用了一个空对象作为查询参数,这意味着将查询所有的文档。如果处理程序成功,则打印出我们找到的所有文档,然后我们关闭数据库连接。我们可以按字段来查询数据:

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

或按某个特定字段排序:

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

在 MongoDB 中更新数据

要更新 MongoDB 的文档,可以使用 updateOne()updateMany() 方法。

在此示例中,我们将利用 _id 来更新给定的文档,将它的年龄改为 35

在 MongoDB 中删除数据

同样,Mongoose 为我们提供了删除文档的两个方法 deleteOne()deleteMany()。下面我们看一个具体的例子,在该例子中,我们将从数据库中删除 age 大于等于20,小于等于30的数据。

$gte 表示 “大于等于”,$lte 表示 “小于等于”。

总结

在以上内容的帮助下, 我们可以在 Node.js 应用中使用 Mongoose 来操作 MongoDB 数据库。从定义模式到添加或删除数据,我们学习了一些常见的操作方法。当然,Mongoose 还有更多的用法,如中间件和其他高级功能, 可以根据自己的需要去寻找。在实践中,希望读者可以探索和尝试来更好地了解和使用 Mongoose 和 MongoDB。

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

纠错
反馈

纠错反馈