假设您有嵌套的集合a
、b
和c
,它们遵循以下映射:
{"collection":"a",
"children":[{"collection":"b",
"name":"bee",
"children"[{"collection":"c","name":"cee"}]}]}
这里是a1
从 MongoDb 数据库中获取的$http
:
{"title":"title a1",
"id":"a1",
"bee":[{"id":"b1"},{"id":"b2"}],
"other_array":[{"foo":"bar"},{"foo":"baz"}]}
现在,在bee
数组中,我们只有引用 ( id
)。我们想要的是继续跟随地图更新a1
,并用实际数据替换引用。
它需要从数据库中获取b1
和b2
数据,每个数据库都可能有cee
数组,我们需要从c
集合中获取其元素。
我想人们可以很容易地创建一个专用的后端函数,它会接受a1
,一次完成所有的获取并返回最终结果;
但是如何a1
通过使用多个 $http/$resource 调用来获得完整的详细版本?
是否应该使用递归函数?
还是最好使用 $q 和链式承诺?
如何遍历地图(了解哪些集合是相关的,以及它们的名称),检索相关b
项目,然后是相关c
项目,最后更新a1
,以便替换a1
为:
{"title":"title a1","id":"a1","bee":[{"id":"b1","title":"title b1","other_stuff":"blah blah","cee":[{"id":"c1","title":"title c1","c_specific":"hi there"}]},{"id":"b2","title":"title b2","other_stuff":null,"cee":[]}],"other_array":[{"foo":"bar"},{"foo":"baz"}]}