MongoDB 查询有四种方式:Query,TextQuery,BasicQuery 和 Bson ,网上太多关于 Query 的查询方式,本文只记录 BasicQuery和Bson 的方式,BasicQuery 相对于 Query 更加的灵活,BasicQuery 就是 Query 的扩展,BasicQuery 可以返回指定列数据。最灵活的是Bson方式。

大写的采坑经验

1.MongoDB 虽然存储很灵活,但是,不要存储Map类型的,不要存储Map类型的,不要存储Map类型的。尽量存储强类型的,尽量存储强类型的,尽量存储强类型的。如果有Map类型的,对于查询指定列的,只能用Bson ,如果是强类型的,就可以直接用Query,TextQuery。

2.复杂类型查询 可以考虑 Bson 方式,Bson 请参考文章最后。

 

 安装Maven包

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

 

测试数据代码

 for (Long i = 0L; i < 10L; i++) {
     MongoDBTestVo vo=new MongoDBTestVo();
     vo.setUserId(i);
     vo.setEmail("1@1.com");
     vo.setName("test"+i.toString());
     vo.setPhone(i.toString());
     vo.setCreateDate(new Date());
     mongoTemplate.insert(vo,"mongodbtest");
}
public class MongoDBTestVo implements Serializable {
    private Long userId;
    private String email;
    private String name;
    private String phone;
    private Date createDate;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
}
MongoDBTestVo Code

相关文章: