Это довольно большой вопрос, но я сделаю все возможное, чтобы решить его.Компания, в которой я работаю, делала переход от разработки наших приложений с Mysql на NoSQL, и я был лидером в первой базе данных NoSQL, мы решали, с какой базой данных NoSQL работать.Я был между MongoDB, CouchDB и Кассандрой.Одним из важных факторов, на которые мне пришлось обратить внимание, было то, насколько легко будет написать базовые функции для работы с базой данных, чтобы вам не приходилось понимать, что происходит, но при этом все еще можно было выполнять запросы и так далее.Проблема с cassandra заключалась в том, что API был очень низкого уровня, и для написания надежного интерфейса высокого уровня потребовалось бы некоторое время, а у нас не было такого времени.Проблема с couchdb была в сервисе REST.Так как мы уже подключались к нашим внутренним API, используя отдых, это был бы сервис двойного отдыха.REST, как правило, перебирает http, и http довольно прост, чтобы с ним было легко работать.И это накладные расходы добавляет время для загрузки информации.Поэтому мы взяли mongodb по этой причине и по многим другим причинам.Кроме того, поскольку он является драйвером, он разработан для работы с языком программирования, что замечательно, если ваш язык поддерживается, отстой, если нет.Так как Java поддерживается mongodb, это нормально.
Я бы порекомендовал преобразовать файлы XML в объекты и затем сохранить объекты в монго.поэтому каждый XML-файл будет встроенным в монгодокументы. Самое замечательное в монго - вы можете искать во встроенных документах и индексировать их.Так что наслаждайтесь шляпой