答案 0 :(得分:8)
首先,它们不是ORM(因为它们之间没有任何关系),它们是 ODM (对象文档映射器)
这些ODM框架的主要用途与ORM的一些常见功能相同,因此
当我使用mongoid(Ruby ODM for mongo)时,我可以在活动模型中查询mongo(主要是)。
由于它们之间没有关系,因此这些ODM提供了定义模型中关系并模拟关系的方法。这些都是从开发人员中抽象出来的,因此他们可以像处理关系数据一样编写代码。
答案 1 :(得分:2)
ORM是一个抽象层。当查询被抽象出来并隐藏在一个公共接口后面时,切换到另一个引擎会容易得多(在实践中它并不总是很好用,但它仍然比没有它更容易)。
答案 2 :(得分:2)
有趣的问题。虽然NoSQL数据库没有识别关系的机制,但这并不意味着您存储的数据之间没有逻辑关系。大多数时候,你正在处理&如果您正在使用NoSQL数据库,请手动在代码中强制执行这些关系。
因此,我觉得ORM仍然可以帮助你。如果您确实拥有相关的数据,但需要使用NoSQL数据库,那么ORM仍然可以帮助您维护干净的数据。
例如,我使用Amazon SimpleDB的成本较低,但我的数据仍然存在需要维护的关系。目前,我手动执行此操作。也许ORM也会帮助我。