2013-12-12 6 views
8

Я использую драйвер mongodb и monk на nodejs. Такие примеры, как this, что я вижу в Интернете имеют следующую закономерность:MongoDB node.js драйвер и монах

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. Почему первая строка нужна: вар Монго = требуется («MongoDB»)? Переменная манго никогда не используется. Разве монах автоматически не потребует монгодба?
  2. Я вижу на уровне водителя, db должен быть открыт и закрыт. Эти методы, похоже, не существуют на уровне монаха. Монок автоматически открывает и закрывает соединения? Как это работает?

На самом деле, мне интересно, какое преимущество обеспечивает монах, используя драйвер напрямую. Я прочитал список функций в monk docs, но на самом деле не понимаю преимуществ.

Заранее за вашу помощь.

ответ

4

Чтобы ответить на некоторые особенности, основываясь на собственном опыте:

1) Вы правы, что переменная MongoDB не требуется. Я не знаю, почему он появляется во всех учебниках. Тем не менее, mongodb IS требуется как зависимость, дополнительная для монаха.

2) Как вы подозревали, вам нужно вызвать db.close(), иначе соединение останется открытым. Кажется, это нигде не документировано. Когда вы будете следовать этому учебнику, вы увидите количество открытых подключений к вашему местному mongodb.

Как вы, наверное, уже читали, цель монаха - предоставить более удобный API, чем собственный драйвер mongodb. У меня недостаточно опыта, чтобы сказать, достигает ли он этого.

+0

благодарит за обмен опытом. – Naresh

+1

Относительно # 1 - требуя mongodb отдельно, у вас есть контроль над версией mongodb. Возможно, вы используете локальную или глобальную версию mongodb, вы можете использовать более старую версию или даже более новую бета-версию. Если монах сам требовал монго, вы бы не контролировали, какую установку или версию он использовал. –

+0

Похоже, вы не должны беспокоиться о закрытии своего соединения. http://stackoverflow.com/questions/14495975/why-is-it-recommended-not-to-close-a-mongodb-connection-anywhere-in-node-js-code – reergymerej

Смежные вопросы