MongoDB неплохо справляется с задачей хранения огромных коллекций неструктурированных данных. Иначе говоря, если вы не можете описать структуру своих данных и не знаете как она изменится в будущем, но можете эти данные отобразить в json-формате, то mongo справится с задачей хранения schemaless данных.
Однако, большое количество документов в json-формате достаточно трудно отобразить в удобном для человека виде. Для экспорта простых отчётов их монги можно написать небольшой скрипт:
print("id,name,city");
db.collection.find({
"location.country": "anything"
}, {
"id": 1,
"name": 1,
"location.city": 1
}).forEach(function(item) {
if(typeof item.location === "undefined") {
city = "";
} else {
city = item.location.city;
}
print(item.id + "," + item.name + "," + city );
});
И выполнить его в MongoDB таким способом:
mongo database export.js > out.csv
Поясню по скрипту:
в первой строке выводим заголовки столбцов в CSV формате
затем фильтруем (find) коллекцию (db.collection) по полю (location.country)
перечисляем имена полей («id»: 1) которые нужно извлечь из документов
если в документе не определено поле (typeof item.location === «undefined»), задать ему значение по-умолчанию
формируем строку со значениями через запятую в CSV формате