发现一个可以用 ES7 async 的 Mongo ORM,推荐 Nodejs 下的 Mongorito
发现一个可以用 ES7 async 的 Mongo ORM,推荐 Nodejs 下的 Mongorito
Koa2 越来越完善了 尝试用 Koa2 写点东西 async await 语法很优雅 异步流程变得很直观;
然后我就在找 promise 版的 mongodb 驱动;
Mongoose 是可以用 .exec() 返回 promise 的, 但我始终觉得 Mongoose 太重了, 其实很多情况下都在用 aggregate, 返回的结果都用不到我们再 Model 里定义的 virtuals, hooks ... 当然, 不用 Mongoose 就用不了它很多很牛的插件 如处理 path 结构的 Materialized 等 ...
不管怎样, 我搜了下 promise 版的 Mongo 驱动 找到了这个 看上去还不错 功能特点:
- 支持 ES6 class 的 Model
- Model 支持 hook, 虽然注册 hook 的方法不怎么优雅.
- 支持 ES7 async 的查询
- 基于 mquery 的语义化的查询很方便
- 不支持直接使用 aggregate, 已提交 issue
https://github.com/vadimdemedes/mongorito
大家还有什么好的推荐吗?
主要问题是 orm 能不能保证 query 过程的性能和速度, 语法其实无所谓
额, 感觉没人气呢
关于你推荐的Nodejs下的Mongo ORM——Mongorito,以及提到的ES7 async特性,以下是我的专业回复:
Mongorito确实是一个轻量级的MongoDB ORM,它简化了与MongoDB的交互,并为Node.js开发者提供了更直观的数据库操作方法。然而,需要指出的是,ES7中的async/await特性并不是Mongorito独有的,而是JavaScript语言的一部分,它可以极大地提升异步代码的可读性和可维护性。
以下是一个使用async/await与MongoDB交互的简单示例,展示了如何在Node.js中利用这一特性:
const { MongoClient } = require('mongodb');
async function connectToDatabase() {
const uri = 'mongodb://localhost:27017';
const client = new MongoClient(uri);
try {
await client.connect();
const database = client.db('myDatabase');
const collection = database.collection('myCollection');
// 在这里执行数据库操作,如插入、查询、更新或删除文档
const documents = await collection.find({}).toArray();
console.log(documents);
} finally {
await client.close();
}
}
connectToDatabase();
在这个示例中,我们使用了async/await来连接MongoDB数据库,并执行了一个简单的查询操作。这种方式使得异步代码看起来更像是同步代码,从而提高了代码的可读性。