【问题标题】:What does "mongodb object modeling for node.js" mean?“node.js 的 mongodb 对象建模”是什么意思?
【发布时间】:2021-12-13 01:54:56
【问题描述】:

这是用于描述moongoosejs.com的第一行

node.js 的 mongodb 对象建模

我目前正在使用 Mongoose,但因为我从未使用过裸 mongoDB,所以我可能不明白这一行。

我知道所有单词的意思是分开但不在一起。 object 是指我用来定义架构的对象字面量吗?

或者更具体的?

【问题讨论】:

  • 当你对一个数据库对象进行“建模”时,你有一些属于数据库的本地内存表示。也称为“实体”。您的架构允许您创建对数据对象建模的对象。
  • 也许我应该问一个词是什么意思 ...object ...这不是我认为的 JavaScript 对象文字,而是数据库对象?什么是数据库对象?
  • 我已经在 Mongoose 中编写了模式,并且能够为我的应用程序执行所有 CRUD 操作,我只是希望能够了解代码如何与概念/词汇表相匹配 ...
  • const Tank = mongoose.model('Tank', schema); 从模式创建模型。 const small = new Tank({ size: 'small' }); 从模型中创建一个对象。
  • 这让我们回到“对象建模”......在这种情况下,模型是指您提到的模型我接受它吗?基本上从一个模式,我可以创建一个模型,从一个模型,我可以实例化得到一个对象......

标签: node.js mongodb mongoose


【解决方案1】:

mongoDB 对象:存储在 mongoDB 数据库中的文档

建模:数据库可以有集合,每个集合都是一个逻辑文档集。模型是集合的基础。 Collection 是一个文档包,这个包与 Model 配合得很好,因为它可以更容易地决定哪个文档应该进入包以及所有文档应该共享哪种模式(模式验证)。

对于 node.js:显然,这意味着我们不能在 PHP、Python 等上使用 mongoose。

那么,如果您不使用 mongoose 对 mongoDB 对象进行建模怎么办?好吧,我没有使用纯 MongoDB,但我可以说没有猫鼬:

  1. 您的数据库结构松散
  2. 它将包含更多用于基本数据库操作的代码。

欲了解更多信息:Why do we need, what advantages to use mongoose

【讨论】:

    【解决方案2】:

    它是存储在数据库中的对象的表示形式。 反正我用过很多mongoose,我倾向于远离它,因为nodejs不是面向对象的语言,处理对象感觉很乱。

    如果你真的想使用 mongoose,最好使用 typescript (with typegoose) 以使对象的使用更容易。

    最后,我不使用 mongoose 或 typegoose,只编写原始查询,因为 mongodb 不是关系数据库(这就是 ORM 的用途),你可以处理关系,但它不是它的方式打算使用。

    【讨论】:

      猜你喜欢
      • 2011-06-12
      相关资源
      最近更新 更多