Как читать вложенные массивы MongoDB в локальную память

#java #database #mongodb

#java #База данных #mongodb

Вопрос:

Я поместил HashMap<String, Set<Long>> объект в документ MongoDB в разделе «disabled_channels», но я не могу понять, как его извлечь и превратить обратно в HashMap<String, Set<Long>> объект в локальной памяти. Обычно я очень хорошо разбираюсь в списках, отдельных значениях и т. Д., Используя что-то вроде found.getList("disabled_commands", String.class) , но я действительно не понимаю, как к этому подойти.

введите описание изображения здесь

     MongoCollection<Document> collection = bot.getDataManager().getConfig();
    Document config = new Document("guild", guild.getIdLong());
    Document found = collection.find(config).first();
    // I get lost here
    
 

Ответ №1:

Document сам по себе является map внутренней реализацией. Ссылка

Вам нужно использовать функцию get для found документа и преобразовать ее в Document , как показано ниже

 Document channels = (Document)found.get("disabled_channels")
 

Затем вы можете получить доступ к элементам, channels используя тот же get метод, и использовать его в соответствии с потребностями.