如何表演" findAll"关于春天和Mongodb的投影?

时间:2016-11-28 08:59:18

标签: spring-data-mongodb

我在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;返回预计值?

1 个答案:

答案 0 :(得分:0)

尝试使用

public interface PersonsRepository extends MongoRepository<Person, String>{

    List<NameAndCity> findByIdIsNotNull();
}