我是Haskell的新手,我已經閱讀了無數的教程和其他資源,但每當我決定嘗試編寫任何遠程有用的程序時,我通常甚至不知道從哪裏開始。我最近在聽一個播客,Gabriel Gonzalez在談論如何保持動力的最佳方式是實際將它用於項目並寫作,所以我真的想用它來完成我手頭的任務。如何使用Haskell將某些數據從一個數據庫移動到另一個數據庫?
因此,我有一個Mongo數據庫,它不斷更新正在被定期抓取的項目和一個Elasticsearch數據庫。前者會經常更新我之前已經刮過的物品,而後者則填充了獨特的物品。爲了達到這個目的,我有一個腳本(1000行Node.js),它不斷地運行並逐個使用Mongo數據庫中的項目,做一些檢查以確定它是否已經存在於Elasticsearch數據庫中,如果沒有,就添加它;之後,它從Mongo中刪除。然而這個腳本是一團糟。
我一直想在Haskell中做到這一點,因爲Haskell非常適合從我讀過和聽過的受控方式管理IO,並且因爲我喜歡保持純函數來轉換數據和程序中實際執行IO的部分是分開的。我還假設Haskell解決方案將更加簡潔,並且在稍後進行更改時更容易推理。
到目前爲止,我已經設法使用mongoDB包在Mongo中執行CRUD操作,但仍然有很多事情我不明白它的工作原理。我發現使用Bloodhound包在Elasticsearch中做同樣的事情很困難,而且我完全不知道如何將事情組合在一起,特別是在確保相關項目在成功添加後才從Mongo中刪除到Elasticsearch。
我知道這是一個非常廣泛的問題,但如果有人對此有所瞭解,或者只是能夠給我一些指導,我將不勝感激。事實上,所有的幫助將非常感激。
這個問題太寬泛,無法通過堆棧溢出格式以有用的方式回答。你可能會在這裏得到更好的結果,將目前有困難的東西提煉成一小段自包含的代碼,然後問一個關於它的問題。 – duplode