Java如何操作MongoDB常用API文档

目录
  • Java操作MongoDB常用API文档
    • 1.查询指定字段
    • 2.按条件查询
    • 3.对查询结果排序
    • 4.获取满足条件的前n条数据
  • Java使用MongoDB数据库相关API小记
    • MongDB数据库使用
    • 首先介绍我的使用环境

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为包含此字段
FindIterable<Document> 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.对查询结果排序

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

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

MongoCursor<Document> 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 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)

相关推荐

  • Java操作MongoDB数据库的示例代码

    mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动. 环境准备 step1:创建工程 , 引入依赖 <dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb‐driver</artifactId> <version>3.6.3</version> </d

  • Java操作MongoDB数据库示例分享

    MongoDB是一个文档型数据库,是NOSQL家族中最重要的成员之一,以下代码封装了MongoDB的基本操作. MongoDBConfig.java package com.posoftframework.mongodb; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; i

  • java操作mongodb示例分享

    复制代码 代码如下: package mymaven; import java.net.UnknownHostException;  import java.util.Set; import com.mongodb.BasicDBObject;  import com.mongodb.DB;  import com.mongodb.DBCollection;  import com.mongodb.DBCursor;  import com.mongodb.DBObject;  import c

  • java操作mongodb基础(查询 排序 输出list)

    复制代码 代码如下: package com.infomorrow.webroot; import java.util.List; import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.MongoClient; public cl

  • Java如何操作MongoDB常用API文档

    目录 Java操作MongoDB常用API文档 1.查询指定字段 2.按条件查询 3.对查询结果排序 4.获取满足条件的前n条数据 Java使用MongoDB数据库相关API小记 MongDB数据库使用 首先介绍我的使用环境 Java操作MongoDB常用API文档 1.查询指定字段 collection.find().projection(fields(include("username","pwd"),excludeId()));//返回username与pwd

  • SpringBoot集成Swagger构建api文档的操作

    最近在做项目的时候,一直用一个叫做API的东西,controller注解我会写,这个东西我也会用,但是我确实不知道这个东西是个什么,有点神奇.关键还坑了我一次,他的注解会影响到代码的运行,不光是起到注解的作用.所以我就研究了一下. Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspector:测试API和生成OpenAPI的开发工具.Swagger Inspector的建立是为了解决开发者的三个主要目标. 1

  • swagger2隐藏在API文档显示某些参数的操作

    swagger2隐藏在API文档显示某些参数 有时候,利用swagger2建立API文档时,有些参数是需要隐藏在API文档显示,在方法中,参数的名字前加上 @ApiIgnore 就可以了: @PostMapping("modi/certificate") @ApiResponses({@ApiResponse(code = 0, message = "请求成功"), @ApiResponse(code = 10031, message = "商家的营业执照

  • 将JavaDoc注释生成API文档的操作

    目录 将JavaDoc 注释 生成API文档 java自动api文档生成Yapi word文档缺点 swwager文档缺点 将JavaDoc 注释 生成API文档 1. 打开java代码,编写JavaDoc 注释,只有按照java的规范编写注释,才能很好的生成API文档,javadoc注释与普通注释的区别为多一个*(星号).普通代码注释为/*XXX*/,而javadoc的注释为/**XXX*/ 2. javadoc注释要尽量写的详细,这样别人在没有源码的情况下才知道如 何使用您的代码. 3. 点

  • MongoDB基础之文档操作

    一.插入文档 文档的数据结构和 JSON 基本一样. 所有存储在集合中的数据都是 BSON 格式.BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称. 1.语法 1.db.collection.insert(): 向集合中插入文档,若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据. db.collection.insert(document) 2

  • SpringBoot结合Swagger2自动生成api文档的方法

    首先在pom.xml中添加如下依赖,其它web,lombok等依赖自行添加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.spri

  • SpringBoot集成Swagger2构建在线API文档的代码详解

    第一部分:代码集成 pom.xml <!--swagger2配置--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>i

  • SpringBoot的API文档生成工具SpringDoc使用详解

    目录 前言 SpringDoc简介 使用 集成 从SpringFox迁移 结合SpringSecurity使用 测试 常用配置 总结 参考资料 前言 之前在SpringBoot项目中一直使用的是SpringFox提供的Swagger库,上了下官网发现已经有接近两年没出新版本了!前几天升级了SpringBoot 2.6.x 版本,发现这个库的兼容性也越来越不好了,有的常用注解属性被废弃了居然都没提供替代!无意中发现了另一款Swagger库SpringDoc,试用了一下非常不错,推荐给大家! Spr

  • Java基于状态模式实现的文档编辑模式切换功能实例

    本文实例讲述了Java基于状态模式实现的文档编辑模式切换功能.分享给大家供大家参考,具体如下: 一 模式定义 状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了其类. 二 模式举例 1 模式分析 我们借用文档编辑模式切换这一案例来说明这一模式. 2 状态模式静态类图 3 代码示例 3.1 创建状态接口一IState package com.demo.state; import com.demo.context.Context; /** * * 状态接口 * * @au

  • mongodb如何对文档内数组进行过滤的方法步骤

    本文介绍了mongodb如何对文档内数组进行过滤的方法步骤,分享给大家,具体如下: mongodb文档内包含数组,需要将数组中符合条件的数据过滤出来并返回结果集,可以用两种方式来查询group或filter. 数据源: { "_id" : ObjectId("5bbcc0c9a74db9804e78a157"), "uid" : "1000001", "name" : "zhangsan"

随机推荐