Hi Elija,
Thanks for posting here. I’ve been looking at your question (and the answers) in Stack Overflow and I think the last one is quite good.
I’ll add that in your data you store Latitudes and Longitudes but it’ll be better to store them as GeoJSON Points. You can use an aggregation pipeline to transform your data and then use $merge to write the data back to a collection with a different name than the original one. Then you can check the data and see if it’s what you need. Finally, you can delete the old collection and rename the new one.
In terms of resources, the main three ones are:
Hope this helps!