我們有一個基於Meteor的系統,它基本上輪詢來自第三方REST API的數據,循環檢索數據,插入或更新每個記錄到Meteor集合中。將來自第三方的JSON數據「鏡像」到Meteor Collection的最佳方法
但後來它打我:從第三方的數據中刪除條目時會發生什麼?
可以說插入/更新數據,然後遍歷集合並找出哪一個不在提取的數據中。誠然,這是一種做法。
另一種方法是清除集合,並重寫所有的數據。
但有成千上萬的條目(目前在1500+條記錄中,可能會爆炸),兩者似乎都非常緩慢且CPU消耗。
將數據從JS對象鏡像到Meteor/Mongo集合的最優化過程是什麼,這樣從數據中刪除的項目也會在集合上被刪除?。
我認爲代碼在這裏是無關緊要的,因爲這可能適用於其他語言可以做類似的壯舉。
可以給我們一些像數據大小,一致性要求,訪問模式的背景嗎?現在看來你可以用某種內存數據庫而不是MongoDB做得更好。 – zero323
當你說「通過集合循環」你的意思是查詢?或者是你已經淘汰的第三個選項? – user728291
你想在這裏實現什麼目標?我認爲如果你想使用第三方數據作爲Meteor collection,你最好把它保存在內存中並且僞造收集行爲。順便說一句,流星以約5秒的時間間隔輪詢Mongo,所以在這裏1秒是有點矯枉過正。 –