Mongous - 一个轻量级的Nodejs MongoDB驱动
Mongous - 一个轻量级的Nodejs MongoDB驱动
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贡献了一些代码,希望大家都来用,一起完善它:)
Mongous - 一个轻量级的Nodejs MongoDB驱动
Node.js 简单且高效,与同样强调高性能和可扩展性的 MongoDB 可以说是天作之合。在 Node.js 中使用 MongoDB 的常见方法是使用 node-mongodb-native
驱动。虽然 node-mongodb-native
很规范且成熟,但它的某些设计可能不符合 JavaScript 的风格,对一些小型应用来说显得有些笨重。
不过,幸运的是 GitHub 上有很多替代品。经过一番筛选,我选择了 mongous
。mongous
的特点是简单且 jQuery 风格,这两个特性对我而言非常具有吸引力。
使用 mongous
的详细方法
具体的使用方法可以参考 mongous
的官方文档。在我实际使用过程中,我发现 mongous
非常方便,相比 node-mongodb-native
,代码量更少,思维方式也更加直观。
以下是一个简单的示例代码,展示了如何使用 mongous
进行基本操作:
const mongous = require('mongous');
// 连接到 MongoDB 数据库
mongous.connect('mongodb://localhost:27017/mydatabase', (err) => {
if (err) {
console.error('Failed to connect to MongoDB:', err);
return;
}
console.log('Connected to MongoDB successfully!');
// 获取数据库实例
const db = mongous.db('mydatabase');
// 获取集合实例
const collection = db.collection('users');
// 插入一条数据
collection.insertOne({ name: 'Alice', age: 30 }, (err, result) => {
if (err) {
console.error('Failed to insert data:', err);
return;
}
console.log('Inserted document with ID:', result.insertedId);
// 查询数据
collection.find({ name: 'Alice' }).toArray((err, docs) => {
if (err) {
console.error('Failed to find documents:', err);
return;
}
console.log('Found documents:', docs);
// 关闭连接
mongous.disconnect();
});
});
});
在这个示例中,我们首先通过 mongous.connect
方法连接到本地的 MongoDB 实例。接着,我们获取了指定数据库(mydatabase
)的实例,并从中获取了一个名为 users
的集合。然后,我们向该集合插入了一条新数据,并查询了这条数据。最后,我们关闭了与 MongoDB 的连接。
结语
总的来说,mongous
是一个非常轻量级且易于使用的 MongoDB 驱动。如果你正在寻找一个简洁且符合 JavaScript 风格的 MongoDB 驱动,mongous
绝对值得你一试。同时,我也鼓励大家参与到 mongous
的开发中来,共同完善这个项目。
和 mongoskin 相比呢?
没用过,今天我找时间测一下性能吧。包括楼下提到的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更加轻量灵活,并且已经完全满足我的要求了。
求科普关于学习曲线
- Mongous
- Mongoskin
- Mongojs (文档里说尽量模仿 shell 命令, 文档没明写的部分是不是的?)
从实用的角度来看,这几个东西只学一个就可以了,应该都可以满足需求,看哪个顺眼就用哪个:)
学的过程就是跟着模块提供的例子试着存取一下数据,如果有更复杂的需求看看mongodb的文档(比如这里)。mongodb的驱动的api都在尽量追求简洁,都不难学。
可以考虑试用下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
Mongous - 一个轻量级的Nodejs MongoDB驱动
Node.js 简单且高效,非常适合与同样强调高性能和可扩展性的 MongoDB 配合使用。通常情况下,人们会选择 node-mongodb-native
库来连接 Node.js 和 MongoDB。然而,node-mongodb-native
虽然规整且成熟,但其风格可能更偏向于传统的后端开发语言,对于一些小型项目或更倾向于 JavaScript 风格的开发者来说,可能会觉得过于复杂。
如果你也在寻找一个更加轻量且易于使用的 MongoDB 驱动库,那么 Mongous 是一个不错的选择。Mongous 的特点是简单和类似 jQuery 的 API,这使得它非常适合那些追求简洁代码的开发者。
示例代码
首先,你需要安装 Mongous:
npm install mongous
以下是一个简单的示例,展示如何使用 Mongous 连接 MongoDB 并执行基本操作:
const Mongous = require('mongous');
// 创建 Mongous 实例,并连接到 MongoDB
const db = new Mongous('mongodb://localhost:27017/mydatabase');
// 插入数据
db.collection('users').insert({ name: 'Alice', age: 25 }, (err, result) => {
if (err) throw err;
console.log('User inserted:', result);
});
// 查询数据
db.collection('users').find({ name: 'Alice' }, (err, docs) => {
if (err) throw err;
console.log('Found users:', docs);
});
解释
- 创建实例:通过
new Mongous('mongodb://localhost:27017/mydatabase')
创建一个 Mongous 实例并连接到本地 MongoDB 数据库。 - 插入数据:使用
insert
方法向集合中插入一条记录。 - 查询数据:使用
find
方法查询集合中的记录。
Mongous 提供了简洁的 API,使得代码更易读和维护。对于那些需要快速原型开发或者对代码风格有较高要求的项目,Mongous 是一个很好的选择。希望你能喜欢这个库,并能为它贡献一些代码!