1
我正在构建React-Meteor网络应用程序,我需要访问某个集合中的特定数据。流星反应订阅特定的采集数据
有三个主要组件,公司列表,项目列表和任务列表。列出所有公司时,我可以选择一个,然后显示与该公司相关的所有项目。然后,我想要做的是点击一个项目并查看与该项目相关的所有任务。我的数据结构如下(你可以看到,项目对象的数组):
{
"_id" : "aQnrkqMi6ugEvav4a",
"owner" : "7Gp49ZCtGC9oEx3jN",
"createdAt" : ISODate("2017-05-08T15:52:27.777Z"),
"data" : {
"name" : "lkhgb",
"contacts" : [
{
...
}
],
"projects" : [
{
...
},
{
"name" : "ljhvljhvblhkjvblhkj",
"id" : "258757206",
"tasks" : [
"task1",
"task2"
]
}
]
}
}
在我的任务列表组件,我出口它像这样:
export default createContainer((props) => {
const {companyId} = props.match.params;
Meteor.subscribe('company');
return {project: Company.findOne(companyId)};
}, TaskList)
我在哪里”把公司撤下道具。我也从props中取消了projectId,但是当我查询集合时,它只是返回undefined。我已经发布了GitHub repo在这里住 - https://github.com/GlueDigiStu/ClientManager,并希望得到任何帮助。
嗨米奇,感谢你 - 我试过你的初始方法,我似乎无法得到它的工作。至于你的建议,我想我会沿着这条路走下去,并试图将我的一个大集合分成三个独立的集合。尽管如此,我还是无法摆脱“转换”的文档。你对这个话题有什么建议吗?我找到了这一个教程,但它是为铁路路由器,而不是反应(但我想它是相似的)http://meteor.hromnik.com/blog/joins-in-meteorjs-and-mongodb – GlueDigiStu
我不会能够帮助您完成转换和被动连接。我们从来没有在我们的项目中使用它们,因为如果订阅的集合没有仔细管理,并且只是吐出所有属性,就会导致巨大的性能下降。只要小心你使用变换发布的内容。 – mitchken