У меня есть коллекция MongoDB, содержащая такие объекты:
{
"_id" : ObjectId("51acfe570e88060906797af8"),
"address" : {
"street" : "10 rue des Lilas",
"street2" : "",
"city" : "Paris",
"zipCode" : "75017",
"country" : "France",
"loc" : {
"lat" : 0.0,
"lon" : 0.0
},
"countryCode" : "FR"
}
}
Я пытаюсь получить значение ключа address.street с помощью этого кода:
collection.find().map(r -> r).forEach(r -> {
Object value = r.get("address.street");
System.out.println("value is: " + value);
});
Я получаю нулевые значения, как мне получить настоящие значения?
редактировать: Для тех, кто дает -1 и не отвечает на вопрос, а для других, возможно, мне не нужно решение с java.util.Map, мне нужно действительно базовое решение. Спасибо.




Вы можете использовать Spring Data для очень простого решения, создав репозиторий и связанный класс сущности. Чтобы получить все адреса, вы можете использовать repository.findAll (), а для запроса по определенному атрибуту будет достаточно findByAttributeName.
Для исчерпывающей документации
https://spring.io/guides/gs/accessing-data-mongodb/
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface AddressRepository extends MongoRepository<Address, String> {
public List<Address> findByCity(String city);
public List<Address> findByZipCode(String zipCode);
}
Спасибо за помощь, к сожалению, для этого проекта я должен работать с Джонго.