Mongous - 一个轻量级的nodejs mongodb驱动
发布于 13 年前 作者 acsaga 23441 次浏览 最后一次编辑是 8 年前

nodejs简单高效,和同样强调高性能、可扩展的mongodb可以说是绝配。在nodejs中使用mongodb的通常方法是使用node-mongodb-native。node-mongodb-native给人的感觉是规整成熟,但是有点不符合javascript的风格,对于一般的小应用来说也有些笨重的感觉。我对它并不满意。

好在有伟大的github,在上面有不少node-mongodb-native的替代品。从众多候选者中我选择了mongous。它的特点正像它描述中说的那样,是simple和jQuery like – 这两个是非常吸引我的特征:)

详细的使用方法还是直接看mongous的文档比较好。 在我的实际使用过程中觉得非常方便,和mongous相关的代码量比node-mongodb-native少很多,思维方法直接很多,所以推荐给大家。

在使用过程中我也根据自己的需求为mongous贡献了一些代码,希望大家都来用,一起完善它:)

24 回复

和 mongoskin 相比呢?

谁来科普下 :

  • Mongous
  • Mongoskin
  • Mongoose

没用过,今天我找时间测一下性能吧。包括楼下提到的mongoose

刚才看了一下,mongoskin,mongoose和mongous没有什么可比性。

mongoskin和mongoos都使用的是node-mongodb-native作为连接mongodb的驱动。它们是在node-mongodb-native的基础上加了一层,mongoos是加了一层ORM的框架,mongoskin则是让用户访问mongodb更接近mongo shell的语法(并额外提供了一些功能)。

而mongous本身就是一个mongodb驱动,它和node-mongodb-native是同一个级别的东西。毫无疑问node-mongodb-native更强大和成熟,但就我个人使用来看mongous更加轻量灵活,并且已经完全满足我的要求了。

@acsaga mongoskin就想node-mongodb-native上的mongous包装,使用方式也非常方便。mongous api果然不错。

@acsaga mongous集群方式支持吗?

求科普关于学习曲线

  • Mongous
  • Mongoskin
  • Mongojs (文档里说尽量模仿 shell 命令, 文档没明写的部分是不是的?)

@suqian 集群方式指的是http://www.tech126.com/mongodb-sharding-cluster/这篇文章说的方法吗?从这篇文章来看,配置好mongo,似乎不需要驱动做什么额外的工作。访问mongo的时候访问route server就可以了。

从实用的角度来看,这几个东西只学一个就可以了,应该都可以满足需求,看哪个顺眼就用哪个:)

学的过程就是跟着模块提供的例子试着存取一下数据,如果有更复杂的需求看看mongodb的文档(比如这里)。mongodb的驱动的api都在尽量追求简洁,都不难学。

@acsaga 我看mongodb官方文档不是这么说的。。。如果你配置的那台机器挂了,就失去链接了。

@suqian mongous不支持同时连接多个route server并进行负载均衡。这个mongodb确实也不支持,需要自己写。

我个人还没有遇到过需要处理这么大数据量的情况,以后如果有需要的话会给mongous加上这个功能。也希望别人能为mongous贡献代码:)

可以考虑试用下mongous, 不过NAE好像还不支持?

Mongoskin用起来比较舒服和自由。 Mongoose比较模板化的使用,有利于固定的文档结构的使用。

以上两者都是基于node-mongodb-native的

同意楼上的,最近再试水mongoskin,用了一阵mongoose总感觉schema让我很不适应。既然mongodb原本就是schemaless的就没有那么大的必要强制schema。虽然有mix模式,但是个人理解schema才是mongoose的核心吧。api什么的学习起来都不难。理解有出入。望指正。

挺好用,语法简便。

目前用的mongoose,ODM可以带来很多方便,它扩展也比较容易,就是源码看的我狠迷糊.

简单的不需要模式的就用node-mongodb-native官方版,mongoskin,mongojs(依赖node-mongodb-native),mongous.

说实话我感觉node-mongodb-native API不好学,还没highcharts API好学。

关于mongous,一个问题困扰我很久,如何按时间逆序取数据?即每次取最新的数据,貌似默认都是取最旧的数据。

太多driver 搞到语法都很乱。

这个我也比较的赞同,选择起来真的很累!

怎么连接有密码的db

@yueduz auth一下就可以了

@yueduz mongoose: db.openSet(“mongodb://admin:pass@192.168.1.100:27017/mydb”);

回到顶部