前言
在 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