插件窝 干货文章 MongoDB 与 Mongoose:了解它们的角色和差异

MongoDB 与 Mongoose:了解它们的角色和差异

strong mongodb mongoose 数据 1021    来源:    2024-10-20

mongoosemongodb 都是 javascript 中处理数据库不可或缺的一部分,但它们有不同的用途:

1.mongodb

  • 类型:nosql 数据库。
  • 角色:mongodb 是一个数据库管理系统 (dbms),它以灵活的、类似 json 的文档(bson 格式)存储数据。它提供与数据交互的核心功能,例如存储、检索和更新文档。
  • 用例:直接用于存储和管理不需要固定模式的大型数据集。

示例:

   db.collection('users').find({ name: 'john' })

2. 猫鼬

  • 类型:mongodb 的 odm(对象数据建模)库。
  • 角色:mongoose 是 mongodb 之上的更高级别的抽象。它提供了一个基于模式的解决方案来对应用程序数据进行建模,提供结构、验证和查询构建机制。
  • 用例:当您想要在数据上强加结构(模式)并强制验证时,这是理想的选择。

示例:

   const userSchema = new mongoose.Schema({
     name: String,
     age: Number,
   });
   const User = mongoose.model('User', userSchema);
   User.find({ name: 'John' });

主要区别:

  • 模式执行:mongodb 本身是无模式的,而 mongoose 允许您定义模式,为您的数据提供结构。
  • 抽象:mongodb 查询更加底层,而 mongoose 提供了更加用户友好的 api,具有中间件、钩子等功能,以及更强大的查询功能。
  • 验证:mongoose 支持内置的数据验证,可以更轻松地保持一致的数据完整性。

总而言之,mongodb 本身就是数据库,而 mongoose 是与 mongodb 交互的工具,为模式管理和验证提供附加功能。