O dokumentově orientované databázi MongoDB jsme psali již v několika článcích. Pro mnoho vlastností podobných Notesům ji používáme ve svým webových aplikacích postavených na PHP a vytvářených v prostředí aplikačního frameworku Symfony . Pokud konkrétní nasazení zahrnuje přechod z Lotus Notes nebo jejich souběžný provoz, máme pro tyto účely vyvinut převodník, který provádí synchronizaci nebo jednorázové převedení dat z Lotus Notes právě do MongoDB. Dokumentově orientovaný charakter této databáze umožňuje i převod komplikovanějším datových typů, jako jsou richtexty, přílohy nebo vícehodnotová pole.
Samotný převodník je vytvořen ve formě Lotus Notes databáze. Formou konfiguračních dokumentů se vytvoří připojení k MongoDB s parametrizováním celého procesu. Konfigurací je možno nastavit:
- z jakého serveru a jaká databáze bude exportována
- jaká data budou exportována – možnost zadání ve formě pohledu s definicí, jaké typy dokumentů převáděny být nemají
- je možno specifikovat datum poslední modifikace dat, které budou do exportu zahrnuty
- seznam jednotlivých polí z Lotus Notes dokumentů, která budou převáděna
Mapování jednotlivých polí pro převod se děje formou samostatných záznamů. V nich je možno specifikovat:
- zdroj dat z Lotus Notes dokumentu – tím může být jednotlivé pole, formule nebo příloha
- název pole v MongoDB, které může být odlišné
- specifikace, zda-li se jedná o vícehodnotové pole. V MongoDB bude reprezentováno polem hodnot
- typ pole – převodník podporuje kromě běžných typů polí, jako jsou text, číslo, datum, také možnost přenášet richtexty (ty jsou převedeny do HTML použitelného pro editaci na webu) a přílohy (ty jsou uloženy do datastoru MongoDB speciálně upraveného pro soubory s názvem GridFS )
Takto nadefinovaný převod databáze pak běží formou ručního nebo periodického spouštění. Samotná synchronizace využívá unikátní ID dokument z Lotus Notes, čímž dochází ke svázání záznamu pro pozdější aktualizace.