Ho una raccolta con 100 milioni di documenti di geometria.MongoDB e utilizzo di DBRef con dati spaziali
Ho una seconda raccolta con dati temporali associati a ciascuna delle altre geometrie. Questo sarà 365 * 96 * 100 milioni o 3.5 trilioni di documenti.
Anziché archiviare i 100 milioni di voci (365 * 96) volte più del necessario, voglio tenerle in raccolte separate e fare un tipo di JOIN/DBRef/Qualunque cosa io possa in MongoDB.
Prima di tutto, voglio ottenere un elenco di GUID dalla raccolta di geometrie utilizzando un geoIntersection. Questo lo filtrerà da 100 a 5000. Quindi, usando quei 5000 guai delle geometrie, voglio filtrare i 3.500 miliardi di documenti basati sui 5000 goemetries e ulteriori criteri di data che specificano e aggregano i dati e trovano la media. Ti rimangono 5000 geometrie e 5000 medie per i criteri di data specificati.
Questo è fondamentalmente un JOIN come lo conosco in SQL, è possibile in MongoDB e può essere fatto in modo ottimale in meno di 10 secondi.
Chiarire: come ho capito, questo è ciò che viene utilizzato DBrefs, ma ho letto che non è affatto efficiente, e con la gestione di molti dati che non sarebbe una buona misura.
I DBRef sono fondamentalmente deprecati: è una cattiva idea quella di fare join nella vostra applicazione che è ciò che state facendo qui. Quanto sono grandi queste geometrie? –
Le geometrie sono circa 100 byte per, quindi non è fattibile replicarle in modo de-normalizzato. Insieme, solo la raccolta di geometrie esegue 10 GB, quindi senza un join sarebbe necessario uno spazio aggiuntivo di 350400 GB. – ParoX