Mongodb的僧侣vs猫鼬
Posted
技术标签:
【中文标题】Mongodb的僧侣vs猫鼬【英文标题】:monk vs mongoose for Mongodb 【发布时间】:2014-06-30 04:33:51 【问题描述】:我正在学习 NodeJs。
为了从 NodeJS 连接和使用 MongoDB,我看到很多使用 Monk 或 Mongoose 的示例。
这两个库是等效的吗?它们是否具有相同的功能,或者它们每个都有特定的用途?
作为 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,
);
【问题讨论】:
【参考方案1】:它们是相同的东西做相同的连接吗?还是他们有特定的目的?
它们是不同的,尽管它们是解决相同基本问题的两种方法。 Mongoose 是一个非常复杂的全功能 ORM。更多功能,但更复杂。 Monk 的范围更小,因此更容易理解。
我的建议是直接使用基本的mongodb
驱动模块开始编码。当你了解它是如何工作的,以及它的某些部分是如何令人讨厌的时候,你就会明白monk
的好处,并且可以尝试一下,看看你是否喜欢它。我不会向初学者推荐mongoose
。 Mongodb 已经足够难学了,虽然 mongoose 会有所帮助,但它的 API 非常神奇,并且假设您已经了解 mongodb 的棘手方面。
【讨论】:
我从 Mongoose 开始,没有遇到任何问题。他们的网站有优秀的文档和基本 CRUD 的示例。 我向初学者推荐和尚,理解和尚文档很容易快速【参考方案2】:如果你正在学习 NodeJS 和 Mongo,你真的不需要任何其他东西——事实上,MongoDB 为 MongoDB 和 NodeJS 开发人员提供了免费的在线课程。不需要任何额外的包装器。
见https://university.mongodb.com/
【讨论】:
以上是关于Mongodb的僧侣vs猫鼬的主要内容,如果未能解决你的问题,请参考以下文章