Я хочу написать программу начальной загрузки, чтобы получить значения имени, идентификатора и ключа, где abc.active равен true.Я написал некоторый код
@Repository
public interface SwitchRepoDao extends MongoRepository< SwitchRepo, String> {
public List<SwitchRepo> findByAbc_active(boolean active);
}
, также я написал класс для интерфейса.
@Document(collection="switchrepo")
public class SwitchRepo{
@Id
private String id;
private String type;
private List<Abc> abc;
// with getters and setters also constructors.
И Abc - это класс.
public class Abc{
private String name;
private String id;
private String key;
private boolean active;
Это кодЯ использую для отображения вывода.
@Bean
CommandLineRunner runner(SwitchRepoDao switchRepoDao) {
return new CommandLineRunner() {
@Override
public void run(String... args) throws Exception {
Iterable<SwitchRepo> personList = switchRepoDao.findAllWithStatus(true);
System.out.println("Configuration : ");
for (SwitchRepo config : personList)
{
System.out.println(config.getRegistries().toString());
}
}
};
}
Может кто-нибудь, пожалуйста, помогите мне с этим.По любому вопросу, связанному с запросом, оставьте комментарий.Заранее спасибо.
Ниже приведена коллекция MongoDB из теста базы данных.и имя коллекции - switchrepo.
"_id" : "1234567890",
"type" : "xyz",
"abc" : [
{
"name" : "test",
"id" : "test1",
"key" : "secret",
"active" : true
},
{
"name" : "test2",
"id" : "test12",
"key" : "secret2",
"active" : false
}
]
}
В ответ мне нужно вывести как
"id" : "test1",
"key" : "secret",
"active" : true
, поскольку active в этом массиве поддокументов имеет значение true.
Actual Resultчто я получил это "abc" : [{"name" : "test","id" : "test1","key" : "secret","active" : true},{"name" : "test2","id" : "test12","key" : "secret2","active" : false}]