僧侣与mongoose为Mongodb
我正在学习NodeJs。
为了从NodeJS连接和使用MongoDB,我看到很多使用Monk或Mongoose的例子。
这两个库是否相同? 他们有相同的function,还是他们每个人都有特定的目的?
作为NodeJS的初学者,我应该使用哪一个?
下面是一些使用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 }); }); }; };
这里是一个使用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}, });
他们是一样的事情做同样的连接? 还是他们有特定的目的?
它们是不同的,尽pipe它们是解决同一个基本问题的两种方法。 mongoose是一个非常复杂的全functionORM。 更多的function,但更复杂。 僧侣的范围较小,因此更容易理解。
我的build议是直接用基本的mongodb
驱动程序模块开始编码。 当你明白那是如何工作的,以及它的某些部分如何令人讨厌的时候,你就会明白monk
的好处,并且可以试试看看你是否喜欢它。 我不会向初学者推荐mongoose
。 Mongodb已经足够棘手,可以学习,而mongoose可以提供帮助,它的API非常神奇,并假设你已经知道MongoDB的棘手方面。
如果您正在学习NodeJS和Mongo,那么您实际上不需要其他任何东西 – 事实上,MongoDB为MongoDB和NodeJS开发人员提供免费的在线课程。 不需要任何额外的包装。