有人能告诉我breeze中的expand命令什么时候可以与MongoDB结合使用吗?
向Dominik致敬
发布于 2015-06-24 08:06:41
EntityQuery 'expand‘函数不太可能为MongoDB实现,因为'expand’在概念上需要一个'join‘,而这是Mongo没有实现的一个特性。
然而,MongoDB中的思想是,对象的子对象(如果您来自关系背景,则是关系)实际上与父对象一起存储和返回。从breeze的角度来看,这意味着我们将所有这些相关子对象视为复杂对象,当您查询父对象时会自动返回这些对象。换句话说,您可能想要的所有“扩展”都会自动成为查询结果的一部分。
唯一的问题发生在您实际尝试以关系方式使用MongoDB时,即您将一个集合中对象的ID存储为另一个集合中对象的属性。从MongoDB (和breeze)的角度来看,这意味着您需要执行另一个查询来获取此相关数据。
我们确实考虑过将breeze‘expand’转换为一系列嵌套查询,但它确实违背了" MongoDB“的思维模式,而且这种查询的性能可能非常糟糕……我们不确定这对大多数MongoDB开发人员是否有用或可取。
通常,如果您的数据中经常出现这种情况,那么MongoDB可能不是合适的数据库,因为您最终将手动“连接”您的数据,这在Mongo语言中是一个非常乏味的过程。在这种情况下,关系数据库确实是更好的选择之一。
https://stackoverflow.com/questions/30999500
复制相似问题