可能是一个最招人烦的问题了,但还是想问一下 Nodejs 相关问题
可能是一个最招人烦的问题了,但还是想问一下 Nodejs 相关问题
如题,想知道目前在node 应用中,关于mongo 数据库方面大家用的最多的或者说用的最广泛的orm 是什么?在npm上看了下mongoose,下载量有5487,mongoskin 是738 不知道大家都用的是什么?或者说哪个更人性化一些
哥用原始的mongodb
mongoose啊。。。。。。。不過我現在才覺得 真到了nb的地方 還是根據自己的需要優化MongoDB優化Driver 什麼orm odm在此時都是小兒科了。。。 昨天面試完之後的感覺。。。
原生node-mongo-native还行 给几个方法报上promise 就可以在koa中用了
这样搞的话,代码太多了,每一个小的操作都要做error的处理。。。。
刚刚查了下,skin是淘宝kissy团队的,也许是国产的原因,不如官方使用人数多啊
mongoskin没用过,刚用mongoose,我觉得如果是出于研究的话,用原生的最好了
对于Node.js应用中MongoDB的ORM选择,Mongoose是最广泛使用且非常受欢迎的。尽管Mongoskin的下载量较低,但Mongoose提供了更多的功能和更好的用户体验。
Mongoose 示例代码
Mongoose提供了一种简单的模式定义方式来操作MongoDB,同时也提供了强大的查询和验证功能。
安装 Mongoose
npm install mongoose
基本示例
-
定义一个简单的用户模型
const mongoose = require('mongoose'); const Schema = mongoose.Schema; // 定义用户Schema const UserSchema = new Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, password: { type: String, required: true }, createdAt: { type: Date, default: Date.now } }); // 创建模型 const User = mongoose.model('User', UserSchema); module.exports = User;
-
连接数据库
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true }).then(() => console.log('Connected to MongoDB')) .catch(err => console.error('Could not connect to MongoDB', err));
-
基本CRUD操作
const User = require('./models/User'); // 引入刚刚定义的User模型 // 创建新用户 const newUser = new User({ name: 'John Doe', email: 'john@example.com', password: 'secret' }); newUser.save() .then(() => console.log('User saved')) .catch(err => console.error('Error saving user:', err)); // 查询所有用户 User.find() .then(users => console.log(users)) .catch(err => console.error('Error finding users:', err)); // 更新用户信息 User.findByIdAndUpdate(newUser._id, { name: 'Jane Doe' }) .then(() => console.log('User updated')) .catch(err => console.error('Error updating user:', err)); // 删除用户 User.findByIdAndDelete(newUser._id) .then(() => console.log('User deleted')) .catch(err => console.error('Error deleting user:', err));
总结
Mongoose不仅提供了方便的API来操作MongoDB,而且还有丰富的文档和社区支持。虽然它相比原生驱动来说性能稍差,但对于大多数应用场景来说已经足够了。如果你需要一个更轻量级的选择,可以考虑使用mongojs
或mongodb-native
,但这些库在功能和易用性方面可能不如Mongoose。