2014-05-12 12 views
58

Sto imparando NodeJs.monk vs mangusta per Mongodb

Per connettersi e utilizzare MongoDB da NodeJS, vedo molti esempi che utilizzano Monk o Mongoose.

Queste due librerie sono equivalenti? Hanno le stesse caratteristiche o hanno ciascuno uno scopo specifico?

Come un principiante con NodeJS, che dovrei usare?

Ecco alcuni esempi di codice che utilizza Monk:

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

e qui un esempio che utilizza Mongoose:

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

risposta

67

sono loro stessa cosa fanno la stessa connessione? o hanno uno scopo specifico?

Sono diversi, sebbene siano due approcci allo stesso problema di base. Mongoose è un ORM full-on piuttosto sofisticato. Più funzioni, ma più complessità. Il Monaco è di dimensioni più ridotte e quindi più facile da capire.

Il mio suggerimento inizia a codificare direttamente con il modulo driver mongodb di base. Quando capisci come funziona, e in che parte di esso è fastidioso, capirai il vantaggio di monk e potrai provarlo per vedere se ti piace. Non consiglierei mongoose ad un principiante. Mongodb è già abbastanza complicato da imparare e mentre la mangusta può essere utile, la sua API è piuttosto magica e presuppone che tu conosca già gli aspetti delicati di mongodb.

+4

Va bene, inizierò con monaco. grazie – Young

+3

Ho iniziato con Mongoose e non ho avuto problemi. Il loro sito web ha una documentazione eccellente ed esempi di CRUD di base. – mbokil

24

Se stai imparando NodeJS e Mongo, non hai davvero bisogno di nient'altro - infatti, MongoDB offre una classe online gratuita per gli sviluppatori MongoDB e NodeJS. Non è necessario alcun involucro aggiuntivo.

Vedi https://university.mongodb.com/