Python 为什么在NoSql中使用ORM(比如MongoDB)
对不起,这有意义吗?ORM的意思是:对象关系映射器,这里有关系映射器,NoSql不是RDBMS!那么,为什么要在NoSql解决方案中使用ORM呢?因为我看到了针对Python的ORMs的更新 ORM是一个抽象层。当查询被抽象出来并隐藏在一个公共接口后面时,切换到另一个引擎要容易得多(在实践中,它并不总是很好地工作,但它仍然比没有更容易)。有趣的问题。尽管NoSQL数据库没有识别关系的机制,但这并不意味着存储的数据之间没有逻辑关系。大多数情况下,如果您使用的是NoSQL数据库,那么您需要在代码中手动处理和强制执行这些关系 因此,我觉得ORMs仍然可以在这里帮助您。如果您确实有相关的数据,但需要使用NoSQL数据库,ORM仍然可以帮助您维护干净的数据 例如,为了降低成本,我使用Amazon SimpleDB,但我的数据仍然有关系,需要维护。目前,我正在手动操作。也许ORM也会对我有所帮助。首先,它们不是ORM(因为它们之间没有任何关系),它们是ODM(对象文档映射器) 这些ODM框架的主要用途与ORM的一些常见特性相同,因此Python 为什么在NoSql中使用ORM(比如MongoDB),python,orm,mongodb,Python,Orm,Mongodb,对不起,这有意义吗?ORM的意思是:对象关系映射器,这里有关系映射器,NoSql不是RDBMS!那么,为什么要在NoSql解决方案中使用ORM呢?因为我看到了针对Python的ORMs的更新 ORM是一个抽象层。当查询被抽象出来并隐藏在一个公共接口后面时,切换到另一个引擎要容易得多(在实践中,它并不总是很好地工作,但它仍然比没有更容易)。有趣的问题。尽管NoSQL数据库没有识别关系的机制,但这并不意味着存储的数据之间没有逻辑关系。大多数情况下,如果您使用的是NoSQL数据库,那么您需要在代码中手
- 提供对数据模型的抽象。您可以在应用程序中对数据进行建模,而不考虑目标软件李>
- 大多数ODM的构建都是利用现有的语言特性,并使用熟悉的模式来操作数据,而不是学习新软件的新语言语法
由于它们之间没有关系,这些ODM提供了在模型中定义关系和模拟关系的方法。这些都是从开发人员那里抽象出来的,因此他们可以用处理关系数据的相同方式进行编码 因为1-这是我所知道的孤独的语言2-因为orm是为一种特定的语言设计的?!但在SQL时代,这是很有效的,不是吗?@abdel:你是说从未真正结束过的“时代”吗?那么这是用来继承的?但是,如果NoSql解决方案具有识别关系的工具,那么使用ORM会有用吗?但是关于第二点:“大多数ODM的构建都是利用现有的语言功能,使用熟悉的模式来操作数据,而不是学习新软件的新语言语法。”这是驱动程序的工作不?不,驱动程序只是提供一个主干来调用底层引擎来访问数据。mysql和hibernate ORM的Java驱动程序完全不同,对吗?同样的方式,在非sql中也是不同的..Mongoid ODM使用Ruby mongodb驱动程序与mongodb对话..我在这里感到困惑,因为驱动程序使用相同的语言,并且可以按照语言的方式处理mongodb(pymongo将使用python的Instruction来使用数据库,例如Dictionnary)这里没有什么需要困惑的,您仍然可以使用驱动程序访问数据,这没有问题。假设在ORM驱动程序之前的关系词中,我们使用遗留驱动程序(在任何语言中)通过传递字符串查询(它是一个sql synatx)来访问数据库中的数据。当您使用驱动程序时,您必须将mongodb查询作为字符串输入传递给您的驱动程序。但是当您使用ODM时,它会为您提供所有服务,所以现在我将从MiniMongo开始