从MongoOperations结果中排除一些字段

3

我的用户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);

我想跳过一些字段,比如密码。我想获取所有文档中仅包含 id 和用户名的值密码可以为空或不包括在内。我应该怎么做?


请参阅 MongoDB Repositories Quries - Ori Dar
1个回答

3

我能够获取所有字段,但有一个字段无法获取。以下是代码片段:

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接