Java使用MongoDB数据库相关API小记

MongDB数据库使用

MongoDB数据库的查询条件或者说习惯对于使用MySQL数据库的开发人员不太友好,这里总结一些API的使用心得,不喜勿喷,有错误可以发评价。
首先介绍我的使用环境:
1.坐标的使用:导入springboot的相关坐标
		<!--MongoDB相关依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
        </dependency>
2.驱动坐标及其版本号:spring-boot-starter-data-mongodb 中查到的MongoDB版本号为3.8.2版(不需要写上去,这里只是明确引入坐标的版本)
    <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongodb-driver</artifactId>
      <version>3.8.2</version>
      <scope>compile</scope>
    </dependency>
3.MongoDB数据库需要的配置,以springboot框架为例,配置文件如下:

文件名:application.properties

#springboot MongoDB配置
spring.data.mongodb.username=用户名
spring.data.mongodb.password=密码
spring.data.mongodb.authentication-database=一般是admin
spring.data.mongodb.database=数据库名
spring.data.mongodb.port=端口号,默认27017
spring.data.mongodb.host=主机ip
4.相关API(以下API都是调用方法,而非底层源码)

a.保存(保存分为save方法和insert方法)
save有添加的作用,也有更新的作用; 取决于存入的id是否在文档中已经存在
save(T t),save(T t,String “数据库名”);

 	@Autowired
    private MongoTemplate mongoTemplate;
	 /**
     * save有添加的作用,也有更新的作用; 取决于存入的id是否在文档中已经存在
     * @param student 学生对象
     */
	 public void saveStudent(Student student)
    {
        //返回的结果是保存的对象本身, 所以一般不写
        Student result = mongoTemplate.save(student);
    }

b.删除

	/**
     * 根据ObjectId删除记录
     *
     * @param id ObjectID
     */
    public void delStudentByObjectId(ObjectId id)
    {
        //构造查询条件
        Query query = Query.query(Criteria.where("id").is(id));
        //删除操作(常用API)
        mongoTemplate.remove(query, Student.class);
    }

c.修改
修改作用用到的方法是上面说的save方法
d.查询
根据ObjectId查询单个

	 /**
     * 根据ObjectId查找单条记录
     * @param id ObjectId
     * @return 结果
     */
    public Student findStudent(ObjectId id)
    {
        Query query = Query.query(Criteria.where("id").is(id));
        //常用API
        Student student = mongoTemplate.findOne(query, Student.class);
        return student;
    }

查询所有

 	public List<Student> findList()
    {
        //第一个参数可以理解为查出的结果应该封装到怎样的对象中,第二个参数可以理解为表名(也可以不写)
        return mongoTemplate.findAll(Student.class, "tb_student");
    }

根据条件查找
比如查找ObjectId不是1的所有数据

	public List<Student> findByCondition()
    {
    	//构造查询条件
        Query query=Query.query(Criteria.where("id").ne(1));
        //执行查找操作,最后一个参数可以省略(在实体类上已经加上了注解,指定了对应的表名也就是document的名字)
        List<Student> list = mongoTemplate.find(query, Student.class, "tb_student");
        return list;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qin_pgle_CSDN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值