2013-12-12 12 views
8

nodejsでmongodbドライバとmonkを使用しています。そのような私は、Web上で参照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 
}); 

2つの質問:

  1. なぜ最初の行が必要とされます。varモンゴ=は( 'MongoDBのを')が必要ですか?変数mongoは使用されません。モンクは自動的にモンゴブを必要としませんか?
  2. 私はドライバのレベルで、dbを開いて閉じなければならないことが分かります。これらの方法は、僧侶レベルでは存在しないようです。モンクは自動的に接続を開いたり閉じたりしますか?これはどのように作動しますか?

実際、私はモンクがドライバーを直接使用してどのような利点を提供するのか疑問に思っています。私はmonk docsの機能のリストを読んだが、本当にその利点を理解していない。

ご協力いただきありがとうございます。

答えて

4

私自身の経験に基づいて、仕様の一部に答えるために:

1)あなたは、MongoDBの変数が必要とされていないことが正しいです。私はなぜそれがすべてのチュートリアルに表示されるのか分からない。しかし、mongodbはモンクに加えて依存関係として必要です。

2)あなたが疑うように、db.close()を呼び出す必要があります。それ以外の場合は、接続は開いたままです。これはどこにも書かれていないようです。このチュートリアルに従うと、あなたのローカルmongodbへのオープンな接続の数を見ることができます。

既に読んだことがあるかもしれませんが、monkの目標は、mongodbの独自のドライバよりも面白いAPIを提供することです。私は、それが達成されたかどうかを言うのに十分な経験はありません。

+0

あなたの経験を共有してくれてありがとうございます。 – Naresh

+1

#1について - mongodbを別途必要とすることにより、mongodbのバージョンを管理できます。 mongodbのローカルまたはグローバルバージョンを使用している可能性があります。旧バージョンまたはさらに新しいベータバージョンを使用している可能性があります。 monkがmongoを単独で必要とした場合、どのインストールまたはバージョンを使用したかを制御することはできません。 –

+0

接続を閉じることについて心配する必要はないようです。 http://stackoverflow.com/questions/14495975/why-is-it-recommended-not-to-close-a-mongodb-connection-anywhere-in-node-js-code – reergymerej

関連する問題