什么是ORM?
ORM全称Object-Relational Mapping,翻译成中文叫作对象关系映射。ORM是一种程序设计技术,它将对象和关系数据库之间的映射进行自动化,简化了代码的编写,使程序更易于维护。
ORM可以轻松地将JavaScript中的对象转换成数据库中的表并进行CRUD操作,读写数据库就像操作对象一样简单。
为什么选择Sequelize作为ORM框架?
Sequelize是一款针对Node.js中的关系型数据库的ORM框架。它支持多种数据库,包括MySQL、PostgreSQL和SQLite等,同时它也支持NoSQL数据库MongoDB。
Sequelize具有模型定义、模型同步、模型关系、事务、查询等多种功能,它还提供了良好的错误处理机制,是一个非常成熟可靠的ORM框架。因此选择Sequelize作为ORM框架很适合在Node.js中操作MongoDB。
如何在Node.js中使用Sequelize操作MongoDB?
在使用Sequelize操作MongoDB之前,需要先安装mongoose、sequelize和mysql2等包。接下来我们就来一步步讲解如何使用Sequelize操作MongoDB。
1. 定义模型(Model)
在使用Sequelize操作MongoDB之前,需要先定义一个模型(Model),用于描述数据表的结构。一个简单的User模型的定义如下:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- --------- - --------------------- ----- - ------- ------- - - -------------------- ----- ---- - ----------------- ----- - ----- ------- -- ---- - ----- -------- -- ---
2. 配置Sequelize
Sequelize需要与MongoDB进行连接,我们需要为Sequelize配置一个连接选项。一个简单的sequelize配置文件如下:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- ----------------- ------- ----------- - -------- -------- ----- ------------ ----- ------- --- -------------- - ----------
3. 同步模型(Model)
在定义完模型(Model)后,我们需要利用模型同步机制同步模型与数据库之间的关系,建立表和字段的映射。代码示例如下:
-- -------------------- ---- ------- ----- --------- - ------------------- ----- ---- - ------------------------ ----- -------- ------ - ----- ----------- ------ ---- --- --------------- ----------- - -------
User.sync()
中{force: true}
表示每次同步都会清空数据表中原本的数据并重新创建表。
4. 查询数据
Sequelize提供了多种数据查询方法,这里介绍一下常用的find方法。我们可以通过以下代码查询到数据库中所有用户的信息。
const User = require('./model/user'); async function getUsers() { const users = await User.findAll(); console.log(users); } getUsers();
5. 插入数据
插入数据也是我们在使用Sequelize操作MongoDB时经常用到的功能。我们可以通过以下代码插入一条用户信息数据:
-- -------------------- ---- ------- ----- ---- - ------------------------ ----- -------- --------- - ----- ---- - ----- ------------- ----- ----- ---- --- --- --------------------------- - ----------
6. 更新数据
更新数据也是常用的功能,我们可以通过以下代码更新用户的信息:
const User = require('./model/user'); async function updateUser() { const user = await User.findOne({ where: { name: '莉莉' } }); const updatedUser = await user.update({ age: 21 }); console.log(updatedUser.toJSON()); } updateUser();
7. 删除数据
删除数据也是我们经常使用的一个功能。我们可以通过以下代码删除指定的用户信息:
const User = require('./model/user'); async function deleteUser() { const user = await User.findOne({ where: { name: '莉莉' } }); await user.destroy(); console.log('删除数据成功'); } deleteUser();
8. 代码完整演示:
最后附上一段完整的示例代码:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- --------- - --------------------- ----- - ------- ------- - - -------------------- ----- --------- - --- ----------------- ------- --------- - -------- -------- ----- ------------ ----- ------- --- ----- ---- - ------------------------ - ----- - ----- ------- -- ---- - ----- -------- -- --- ------ -- -- - ----- ----------- ------ ---- --- -- ---- -- ---------------- ------ ---- -- ----- ----- - - - ----- ------ ---- -- -- - ----- -------- ---- -- -- - ----- ------- ---- -- -- -- --- ---- ---- -- ------ - ----- ------------------ - ----- -------- - ----- --------------- ---------------------- --------------- -----
运行以上代码后,我们就可以在控制台中看到我们插入的数据了。
总结
使用Sequelize操作MongoDB是一种非常快捷方便的ORM操作方式,它将JavaScript中的对象转换成数据库中的表并进行CRUD操作,读写数据库就像操作对象一样简单。因此,我们可以把更多的时间和精力放在业务逻辑的开发上,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65484e847d4982a6eb29535c