从MongoOperations结果中排除一些字段

时间:2016-06-26 17:09:42

标签: java mongodb spring-data-mongodb

我的用户POJO如下所示:

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "User")
public class User {
    @Id
    private String id;
    private String username;
    private String password;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

我可以根据查询获取所有文档:

List<User> testBedsFromDB = mongoOperations.findAll(User.class);

我想跳过一些字段,例如password。我想通过values only in id and usernamepassword may be null or empty获取所有文档。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

我能够获得除一个字段之外的所有字段。代码spinet吼叫:

Query searchQuery = new Query();
searchQuery.fields().exclude("password");
List<User> userList = mongoOperations.find(searchQuery, User.class);

使用上面的代码password,字段值将为null。 您可以使用多个排除:

searchQuery.fields().exclude("username").exclude("password");