我正在研究角度流星。 在我的数据库中有两个集合,即订阅和学校。 订阅:
[
{
"_id" : "9qAcc86yhG7hSxejL",
"school" : {
"_id" : "uz7rMGXJwn566GhBg"
},
"wrk_status":"completed"
},
{
"_id" : "9qAcc86yhG7hSxejL",
"school" : {
"_id" : "uz7oMGXJwn566GhBg"
},
"wrk_status":"pending"
},
{
"_id" : "9qAcc86yhG7hSxejL",
"school" : {
"_id" : "uz7pMGXJwn566GhBg"
},
"wrk_status":"completed"
}]
学校:
[
{
"_id" : "uz7rMGXJwn566GhBg",
"name" : "The Oxford School",
"address" : "Trivandrum",
"status" : "new",
},
{
"_id" : "uz7oMGXJwn566GhBg",
"name" : "The School",
"address" : "Trivandrum",
"status" : "new",
},
{
"_id" : "uz7pMGXJwn566GhBg",
"name" : "The new School",
"address" : "Trivandrum",
"status" : "new",
}]
所以我想从学校集合中获取学校的名称,地址和状态,其中订阅集合中的wrk_status已完成。 所以一开始我想订阅订阅收集并获得school._id,其中wrk_status已经完成,然后订阅学校收藏,列出学校的详细信息._id
答案 0 :(得分:1)
您可以使用reywood:publish-composite软件包。
提供一种灵活的方法,使用响应式连接从各种集合中发布一组相关文档。这使得一次发布整个文档树变得容易。已发布的集合是被动的,并且会在添加/更改/删除时更新。
这是link
答案 1 :(得分:0)
制作学校词典
var sch_dict = {};
shools.forEach(function(sch) {
sch_dict[sch._id] = sch
});
var result = []
subscriptions.forEach(function(sub) {
if (sub.wrk_status = 'completed') {
result.push(sch_id[sub.school._id]);
}
})