Mongoose VS MongoDB 官方驱动程序

阅读时长 4 分钟读完

前言

在 Node.js 的开发中,MongoDB 多数时候都是作为自己的数据库首选,因为它使用起来非常顺手,且能够高效地处理大量数据。

然而,MongoDB 官方提供了自己的驱动程序,同时 Mongoose 作为第三方库也提供了更高层次的抽象和其他增强功能。如何选择使用哪一个呢?

MongoDB 官方驱动程序

MongoDB 官方驱动程序是一种纯 Node.js 驱动程序,它提供了完整的 MongoDB API 和所有功能,它比 Mongoose 更加接近原生 MongoDB,这一点有点类似于跨平台的 JDBC 驱动。

下面是一些 MongoDB 官方驱动程序的示例:

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

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

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

定制查询条件,例如打印出其中一部分:

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

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

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

MongoDB 官方驱动程序的示例虽然简洁明了,但是很多操作都需要自己从头开始编写代码,这使得代码变得更加冗长。

Mongoose

另一方面,Mongoose 是一个在 MongoDB 之上构建的数据建模库,它提供了很多附加功能,比如支持数据校验、中间件、拦截器、集成命令等等。 以下是更清晰的示例代码:

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

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

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

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

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

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

Mongoose 允许您轻松地定义模式和模型,以及轻松执行 CRUD 操作。 但是,由于其抽象层次较多,这可能导致它变得更慢。

如何选择使用哪一个?

如何选择它们中的一个?在使用 MongoDB 官方驱动程序时,您可以精细控制所有内容,并具有更高的性能。 但如果您需要更大的灵活性以及更多的数据库操作,请使用 Mongoose。

另外,如果您的应用程序需要更多的进程来同时连接到同一个 MongoDB 数据库,那么 MongoDB 官方驱动程序或者 mongodb 将是最好的选择,因为它支持连接池,这样可以很好地处理连接。(Mongoose 抽象不允许连接池自定义)。

结论

无论你使用哪一个,MongoDB 本身就是极好的,而且在开发的过程中通常会使用它。 MongoDB 官方驱动程序需要写更多的代码,但是具有更高的可扩展性。 Mongoose 可以为您的项目提供更高级的功能,但它的复杂性更高。

最终如何选择使用哪一个还取决于您的具体需求。使用那个使你最舒适,那才是最好的技术。

参考

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

纠错
反馈

纠错反馈