首页后端开发其他后端知识Java如何操作MongoDB,API文档是什么

Java如何操作MongoDB,API文档是什么

时间2024-03-24 11:00:04发布访客分类其他后端知识浏览1504
导读:相信很多人对“Java如何操作MongoDB,API文档是什么”都不太了解,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且内容详细,逻辑清晰,接下来小编就为你详细解释一下这个问题。 J...
相信很多人对“Java如何操作MongoDB,API文档是什么”都不太了解,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且内容详细,逻辑清晰,接下来小编就为你详细解释一下这个问题。

Java操作MongoDB常用API文档

1.查询指定字段

collection.find().projection(fields(include("username","pwd"),excludeId()));
    //返回username与pwd字段且不返回_id字段
Document doc = new Document().append("_id", 0).append("username",1).append("pwd",1);
    //指定查询字段,0为不包含此字段,1为包含此字段
FindIterableDocument>
     findIterable = collection.find().projection(doc);
    

两种方法查询结果相同,区别是第一种方法使用了include等函数,需要包含头文件 import static com.mongodb.client.model.Projections.*;

第二种方法使用Document代替了include等函数,无需包含此头文件。

2.按条件查询

Document myDoc = collection.find(and(eq("username","liuchao"),eq("pwd","12345"))).first();
    
//此方法需包含头文件import static com.mongodb.client.model.Filters.*;
    
Document myDoc = collection.find(new Document("username", "liuchao").append("pwd", "12345")).first();
    
//无需包含上面的头文件

3.对查询结果排序

FindIterableDocument>
     iterable = collection.find().sort(ascending("title"));
    //按title升序排列
FindIterableDocument>
     iterable = collection.find().sort(ascending("title","words"));
    //按title和words升序排列
FindIterableDocument>
     iterable = collection.find().sort(descending("title"));
    //按title降序排列
FindIterableDocument>
     iterable = collection.find().sort(new Document("time",-1));
    //按time降序排列

4.获取满足条件的前n条数据

MongoCursorDocument>
     cursor = collection.find(new Document("username","liuchao")).sort(new Document("time",-1)).limit(n).iterator();
    
//对满足条件username=“liuchao”的结果进行降序排列,并获取前n条数据。(n=0获取全部)

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

  }
    

根据条件查找

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

 public ListStudent>
 findByCondition()
  {
    
   //构造查询条件
    Query query=Query.query(Criteria.where("id").ne(1));
    
    //执行查找操作,最后一个参数可以省略(在实体类上已经加上了注解,指定了对应的表名也就是document的名字)
    ListStudent>
     list = mongoTemplate.find(query, Student.class, "tb_student");
    
    return list;

  }
    



感谢各位的阅读,以上就是“Java如何操作MongoDB,API文档是什么”的内容了,通过以上内容的阐述,相信大家对Java如何操作MongoDB,API文档是什么已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Java如何操作MongoDB,API文档是什么
本文地址: https://pptw.com/jishu/652015.html
小写转为大写要怎么做,php的函数有哪些 Mybatis-Plus的ID自动增长如何实现,代码如何写

游客 回复需填写必要信息