我在MongoDB中有一个文档。我的文件如下:
[{
name: "toto",
age: "30",
address:{
city: "Paris",
street: "Rue de la paix"
}
}]
现在,我有一些Java类的模型:
class Address{
public String city;
public String street;
}
class Person{
public String id;
public String name;
public int age;
public Address address;
}
我想执行投影以仅检索我的"人物的名称和城市" ...所以我创建了这样的界面:
interface OnlyCity{
public String getCity();
}
interface NameAndCity{
public String getName();
public OnlyCity getAddress();
}
在我的存储库中,我想创建一个方法来检索所有" NameAndCity" ...
现在,我想要发现一个" findAll"在这个投影上。换句话说,要在我的数据库中获取所有人名和城市人。
我发现这样做的唯一方法如下:
public interface PersonsRepository extends MongoRepository<Person, String>{
List<NameAndCity> findNameAndCityByNameRegex(String regex);
}
使用以下正则表达式调用此方法:&#34;。*&#34; ...这样可行。
但是有可能覆盖&#34; findAll()&#34;返回预计值?
答案 0 :(得分:0)
尝试使用
public interface PersonsRepository extends MongoRepository<Person, String>{
List<NameAndCity> findByIdIsNotNull();
}