sql >> Databasteknik >  >> NoSQL >> MongoDB

Korrekt sätt att hantera schemaändringar i MongoDB med java-drivrutin

Jag tror att du ärligt talat redan har antytt det enklaste svaret.

Uppdatera först ditt dataåtkomstlager för att hantera både det nya och gamla schemat:Infogar och uppdateringar bör uppdatera både det nya och gamla för att hålla saker synkroniserade. Frågor bör endast titta på det gamla schemat eftersom det är källan för registrering vid denna tidpunkt.

Kopiera sedan all data från det gamla till det nya schemat.

Uppdatera sedan dataåtkomsten för att nu fråga den nya datan. Detta kommer att hålla den gamla datan uppdaterad, men kommer att tillåta fullständig testning av den nya informationen innan du gör några ändringar som kommer att resultera i att de två datauppsättningarna inte är synkroniserade. Det kommer också att underlätta rullande uppdateringar (dvs. applikationer med både ny och gammal dataåtkomstkod kommer fortfarande att fungera samtidigt.

Uppdatera slutligen dataåtkomstlagret för att bara komma åt det nya schemat och ta sedan bort den gamla datan.

Förutom detta sista steg kan du alltid gå tillbaka till den tidigare versionen om du skulle stöta på problem.




  1. mongodb:extrahera tidsstämpel från ObjectID i json-frågan

  2. Hur får man alla matchande objekt från en mängd objekt i MongoDB?

  3. MongoDB Standardlagringsmotorn 'wiredTiger' är inte tillgänglig med denna version av mongod + ..no /data/db-mappen..

  4. Hur frågar man trädstrukturen rekursivt med MongoDB?