MongoDB node.js驱动程序和和尚

Nar*_*esh 8 mongodb node.js

我在nodejs上使用mongodb驱动程序和monk.举例如这个,我在网络上看到有以下模式:

var mongo = require('mongodb');
var monk = require('monk');

var db = monk('localhost:27017/userdb');
var collection = db.get('users');
collection.find({}, function(err, docs) {
    // do something with docs
});
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 为什么需要第一行:var mongo = require('mongodb')?永远不会使用变量mongo.僧人不会自动要求mongodb吗?
  2. 我在驱动程序级别看到db必须打开和关闭.这些方法似乎并不存在于和尚级别.和尚自动打开和关闭连接吗?这是如何运作的?

事实上,我想知道和尚提供了直接使用驱动程序的优势.我阅读了僧侣文档中的功能列表,但并不真正理解其中的好处.

在此先感谢您的帮助.

小智 6

根据我自己的经验回答一些具体细节:

1)你是正确的,不需要mongodb变量.我不知道为什么它出现在所有教程中.但是,除了和尚之外,mongodb IS还需要作为依赖.

2)如您所料,您需要调用db.close(),否则连接保持打开状态.这似乎没有在任何地方记录.按照该教程,您可以看到本地mongodb增长的打开连接数.

正如您可能已经读过的那样,和尚的目标是提供比mongodb自己的驱动程序更友好的API.我没有足够的经验来说明它是否实现了这一点.