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