我有兩個系列,tableA
和tableB
。 tableB
中的文檔在tableA
(基本上是一個外鍵)的一個文檔中有一個對應於_id
的字段。例如:如何確保來自某個Collection的數據在其他數據之前到達?
tableB.find({tableA_id: xxx}) // returns documents whose tableA_id is xxx
現在,我有一個observeChanges
聽tableA
集合。如果tableA
有新的或更新的文件,我需要從tableB
獲取文件與新的_ids
:
tableA.find({}).observeChanges({
changed: function(new, old) {
tableB.find({tableA_id: new._id});
}
...
});
但是,有時候,從tableA
更新首先到達客戶端,即使我在tableB
插入文件第一。
// This is how I insert data in the server.
tableB.insert(...);
tableA.insert(...);
從tableB
的更新不久後到達。
我現在的解決方案基本上是在observeChanges
裏面做一個Meteor.call
,它手動從服務器獲取新數據,儘管它不雅觀。在從tableB
獲取文檔之前,我還想過撥打Meteor.setTimeout
。
有什麼方法可以確保tableA
的數據首先到達?
我不知道這是否有幫助,但您是否嘗試過使用[publish-with-relations](https://github.com/erundook/meteor-publish-with-relations)而不是編寫自己的連接? –