使用角$ http获取子文档

时间:2015-02-07 11:03:30

标签: angularjs recursion promise chaining subdocument

假设您有嵌套的集合abc,它们遵循以下地图:

{"collection":"a",
 "children":[{"collection":"b",
              "name":"bee",
              "children"[{"collection":"c","name":"cee"}]}]}

以下是a1,使用$http从MongoDb数据库中提取:

{"title":"title a1",
 "id":"a1",
 "bee":[{"id":"b1"},{"id":"b2"}],
 "other_array":[{"foo":"bar"},{"foo":"baz"}]}

目前,在bee数组中,我们只有引用(id)。我们想要的是继续关注地图以更新a1,并用实际数据替换引用。

这需要从数据库中获取b1b2数据,每个数据都有cee个数组,我们需要从c集合中获取其元素。 / p>

我想可以轻松创建一个专用的后端函数,它将接收a1,一次完成所有的提取并返回最终结果;

但是如何使用多个$ http / $资源调用获得a1的完整详细版本?

是否应该使用递归函数?

或者最好使用$ q和链式承诺?

如何遍历地图(了解哪些集合相关,以及它们的名称是什么),检索相关的b项,然后检索相关的c项,并在最后更新{ {1}},以便用以下内容替换a1

a1

1 个答案:

答案 0 :(得分:0)

正如benjamin Gruenbaum的评论中所建议的那样,

  

进行多次http调用以获取您需要的单个值会降低网站的响应时间并提供糟糕的用户体验

所以我完全抛弃了这个想法,并且只从数据库中获取一个文档,该文档已经包含了所有嵌套数组。

我看到的唯一缺点是,当直接修改子文档时,必须手动修改包含子文档的所有文档。