2014-05-12 13 views
58

Ich lerne NodeJs.Mönch vs Mungo für Mongodb

Um mit MongoDB von NodeJS zu verbinden und zu verwenden, sehe ich viele Beispiele, die entweder Monk oder Mongoose verwenden.

Sind diese beiden Bibliotheken gleichwertig? Haben sie die gleichen Funktionen oder haben sie jeweils einen bestimmten Zweck?

Als Anfänger mit NodeJS, welchen sollte ich verwenden?

Hier sind einige Beispiele von Code, der Monk verwendet:

var mongo = require('mongodb'); 
var monk = require('monk'); 
var db = monk('localhost:27017/nodejsapp'); 

---- 
exports.userlist = function(db) { 
    return function(req, res) { 
     var collection = db.get('users'); 
     collection.find({},{},function(e,docs){ 
      res.render('userlist', { 
       "userlist" : docs 
      }); 
     }); 
    }; 
}; 

und hier ein Beispiel, das Mongoose verwendet:

var mongoose = require('mongoose'); 
---- 
mongoose.connect('localhost', 'test'); 
var db = mongoose.connection; 
    db.on('error', console.error.bind(console, 'connection error:')); 
    db.once('open', function callback() { 
    console.log('Connected to DB'); 
}); 

// User Schema 
var userSchema = mongoose.Schema({ 
    username: { type: String, required: true, unique: true }, 
    email: { type: String, required: true, unique: true }, 
    password: { type: String, required: true}, 
}); 

Antwort

67

sind sie elbe die gleiche Verbindung tun? oder haben sie einen bestimmten Zweck?

Sie sind unterschiedlich, obwohl es sich um zwei Ansätze für das gleiche Grundproblem handelt. Mungo ist ein ziemlich raffiniertes Voll-ORM. Mehr Funktionen, aber mehr Komplexität. Mönch ist kleiner im Umfang und somit leichter zu verstehen.

Mein Vorschlag ist Start-Codierung mit dem grundlegenden mongodb Treibermodul direkt. Wenn du verstehst, wie das funktioniert und wie Teile davon nervig sind, wirst du den Nutzen von monk verstehen und ausprobieren, ob es dir gefällt. Ich würde mongoose einem Anfänger nicht empfehlen. Mongodb ist schon schwierig genug zu lernen und während Mungo hilfreich sein kann, ist API ziemlich magisch und geht davon aus, dass du die kniffligen Aspekte von mongodb bereits kennst.

+4

Okay, ich mit Mönch beginnt. danke – Young

+3

Ich begann mit Mungo und hatte kein Problem. Ihre Website hatte eine ausgezeichnete Dokumentation und Beispiele für grundlegende CRUD. – mbokil

24

Wenn Sie NodeJS und Mongo lernen, brauchen Sie wirklich nichts anderes - in der Tat bietet MongoDB eine kostenlose Online-Klasse für MongoDB- und NodeJS-Entwickler. Keine Notwendigkeit für zusätzliche Wrapper.

Siehe https://university.mongodb.com/