MongoDB node.js驱动程序和僧侣

我正在使用mongodb驱动程序和nodejs上的和尚。 像我在网上看到的例子有以下模式:

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 }); 

两个问题:

  1. 为什么需要第一行:var mongo = require('mongodb')? variablesmongo从不使用。 不会和尚自动要求mongodb?
  2. 我在驱动程序级别看到,数据库必须打开和closures。 这些方法似乎并不存在于和尚的层面上。 修士会自动打开和closures连接吗? 这个怎么用?

事实上,我想知道和尚提供的优点是直接使用驱动程序。 我读了和尚文档中的function列表,但并不真正了解这些好处。

在此先感谢您的帮助。

根据我自己的经验来回答一些具体问题:

1)您确定mongodbvariables不是必需的。 我不知道为什么它出现在所有的教程中。 然而,mongodb IS需要作为依赖,除了和尚。

2)如你所怀疑的,你需要调用db.close(),否则连接保持打开状态。 这似乎没有logging在任何地方。 当你按照这个教程,你可以看到当地MongoDB开放连接的数量增长。

正如你可能已经读过的,和尚的目标是提供一个比mongodb自己的驱动程序更友好的API。 我没有足够的经验来说明它是否达到这个目标。