【发布时间】:2014-04-08 00:08:51
【问题描述】:
起初,我认为无需在模型中定义就可以向对象添加一些东西是很酷的。但是现在我无法想象它是如何在像 Ruby on Rails 应用程序这样的 Web 应用程序中使用的。哪些用例需要动态字段,用户界面如何允许用户定义这些动态字段?您是否让用户设置动态字段的键(使用文本框或其他东西)?你们中的任何人都知道任何演示都是展示动态字段真正有用性的一般应用程序吗?另外,如果您打算阅读这些动态字段,您是否不需要提前计划好的“动态”字段名称的read_attribute(在 RoR 的情况下)?
我问这个问题是因为我在学校有一个任务是围绕 PostgreSQL 和一个 NoSQL 数据库(我选择 MongoDB)包装一个应用程序。我已经成功地做到了这一点,但是,我添加到我在 MongoDB 端定义的任何对象的每个属性都已经在模型中定义了。我想表明我知道这种能力,但我想不出任何理由使用动态字段,也找不到搜索结果,“mongodb 中动态字段的目的”或“动态字段” mongodb 演示”。
谢谢!
【问题讨论】:
-
什么是动态字段? MongoDB 是无模式的,因此您可以随时添加字段。在某些应用程序中,对于具有预定义的应用程序,添加新字段可能没有意义(同样,无需调整架构)。
-
我想知道为什么他们提供向没有定义该字段的模型添加字段的能力。那有意义吗?我知道您可以动态添加字段。我想知道模型定义中没有出现的真正动态字段
-
也许一个“动态字段”的例子可以帮助澄清事情。
-
好吧,因为这本质上是我的问题。我真的很想知道是什么用例说服了开发这种类型数据库的人想要提供这种功能:在任何给定类型的任何给定时间添加任何类型的任何字段的能力。当然,当可伸缩性是一个问题时,它比这更复杂。我只是想了解 MongoDB 的这一特殊方面。
标签: mongodb ruby-on-rails-4 mongoid dynamic-attributes