为什么使用nodeJS驱动来操纵MongoDB数据库?

如果我们可以从Mongo shell执行相同的查询操作,那么使用驱动程序和JavaScript有什么意义?

理论上任何一段代码都可以通过一个好的shell来实现。

那么,为什么我们不惜一切代价远离shell呢?

  1. 安全问题,当应用程序使用shell执行操作时,它对漏洞非常敏感。
  2. 组态。 如果服务器没有所需的客户端,或者客户端的版本错误怎么办?
  3. 驱动程序处理许多边缘情况,你可能没有注意到乍一看。 连接丢失处理,多重连接等。

简而言之,将shell命令想象成pipe理员的用户界面。 它可能足够强大的任务,但作为一个开发人员,你想通过这个中间人,并直接与服务器通信。

如果用某种语言(比如说Java)编程,那么使用Java驱动程序访问MongoDB比使用Java调用mongodb shell更容易,并且可以通过这种方式(从shell)执行到MongoDB的命令。 特别是JavaScript语言和NodeJS JavaScript宿主环境也是如此。 这就是为什么使用驱动程序是有道理的。

实际上,这整个事情不仅适用于MongoDB,也适用于关系数据库(如MySQL,Oracle等)。