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

Java操作MongoDB基础

目录

MongoDB入门

MongoDB是一种基于文档的、面向文档的NoSQL数据库管理系统。与传统的关系型数据库相比,MongoDB有更高的灵活性和可伸缩性。

MongoDB将数据存储在BSON格式的文档中,每个文档类似于关系型数据库中的一行数据。MongoDB使用类似JSON的语法来查询文档,并提供了多种方式进行查询和操作。

Java连接MongoDB

在Java程序中连接MongoDB,需要下载mongodb-java-driver.jar,然后通过Java代码进行连接。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");

        System.out.println("Connect to database successfully");

        mongoClient.close();
    }

}

上述代码中,首先创建一个MongoClient对象,参数为MongoDB所在的服务器IP和端口号。然后调用MongoClient对象的getDatabase方法,获取指定的数据库名称。

MongoDB查询操作

查询所有记录

查询所有MongoDB中的记录,可以使用find()方法。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        FindIterable<Document> cursor = collection.find();

        for (Document doc : cursor) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,首先创建一个MongoCollection对象,参数为要查询的集合名称。然后调用MongoCollection对象的find()方法,获取所有记录。最后通过for循环遍历所有记录,使用toJson()方法输出每条记录。

条件查询

查询符合指定条件的记录,可以使用Filters类中的方法作为参数,传递给find()方法。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        FindIterable<Document> cursor = 
             collection.find(Filters.eq("age", 20));

        for (Document doc : cursor) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,使用Filters.eq("age", 20)表示查询age等于20的记录。

多条件查询

查询符合多个条件的记录,可以使用Filters类的多个方法组合。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        FindIterable<Document> cursor = 
             collection.find(
                 Filters.and(
                     Filters.eq("age", 20), 
                     Filters.eq("gender", "male")
                 )
             );

        for (Document doc : cursor) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,使用Filters.and方法将多个查询条件进行组合。

分页查询

MongoDB中的分页查询,可以使用skip()和limit()方法。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        int pageNo = 2;
        int pageSize = 3;

        List<Document> list = collection
             .find()
             .skip((pageNo - 1) * pageSize)
             .limit(pageSize)
             .into(new ArrayList<>());

        for (Document doc : list) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,首先定义分页查询的页码pageNo和每页数据量pageSize。然后使用skip()方法跳过(pageNo - 1) * pageSize条数据,使用limit()方法获取pageSize条数据。最后使用into()方法将查询结果转换为List类型,方便输出。

MongoDB排序操作

正序排序

MongoDB中的排序操作,可以使用sort()方法。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        FindIterable<Document> cursor = 
             collection.find()
                       .sort(Sorts.ascending("age"));

        for (Document doc : cursor) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,使用Sorts.ascending("age")表示按age字段的正序排序。默认情况下,sort()方法默认按照升序排序。

倒序排序

倒序排序,可以使用Sorts.descending()方法。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        FindIterable<Document> cursor = 
             collection.find()
                       .sort(Sorts.descending("age"));

        for (Document doc : cursor) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,使用Sorts.descending("age")表示按age字段的倒序排序。

Java输出MongoDB查询结果为List

将MongoDB中查询的结果输出为List,可以使用into()方法。

public class MongoDB {

    public static void main(String[] args) {

        MongoClient mongoClient = new MongoClient("localhost", 27017);
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");

        System.out.println("Collection sampleCollection selected successfully");

        List<Document> list = collection.find().into(new ArrayList<>());

        for (Document doc : list) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }

}

上述代码中,使用into()方法将查询结果转换为List类型,方便输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java操作mongodb基础(查询 排序 输出list) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • MongoDB中aggregate()方法实例详解

    当然,请先给出我文章的标题格式:# MongoDB中aggregate()方法实例详解 # 什么是MongoDB中的aggregate()方法 MongoDB中的聚合操作可以通过 aggregate() 方法进行实现。该方法可以对 MongoDB 集合进行多个操作,包括文档分组、文档变换、文档计算等等。简单来说,aggregate() 方法是通过提供聚合管道…

    MongoDB 2023年5月16日
    00
  • MongoDB数据库部署环境准备及使用介绍

    下面是关于“MongoDB数据库部署环境准备及使用介绍”的完整攻略。 一、环境准备 1. 安装MongoDB 首先,访问MongoDB官网并下载安装包,根据系统版本选择对应的安装包。下载完毕后,运行安装包并按照提示完成安装即可。 2. 启动MongoDB服务 MongoDB安装完成后,还需要启动MongoDB服务,才能正常使用。在Windows系统中,可以使…

    MongoDB 2023年5月16日
    00
  • MongoDB慢查询与索引实例详解

    MongoDB慢查询与索引实例详解 本篇文章将分别从慢查询和索引入手,通过实例,向大家详细讲解MongoDB慢查询和索引的使用。 什么是慢查询? 慢查询是指查询花费时间较长的查询语句,它会导致系统变慢、性能降低的情况。为了更好地提高MongoDB的性能,需要尽可能的避免慢查询的出现。 如何查询慢查询? MongoDB提供了db.currentOp()的命令,…

    MongoDB 2023年5月16日
    00
  • MongoDB利用oplog恢复数据的方法

    当 MongoDB 的主服务器发生故障时,管理员可以利用副本集中的数据、oplog 和其他工具来恢复数据。下面是利用 oplog 恢复数据的方法: 1. 确定恢复点 首先需要确定故障发生的时刻,也就是需要恢复到的时间点。可以通过查询主节点的 oplog 来确定时间点。使用以下命令查找 oplog 中的最后一个条目: db.oplog.rs.find().so…

    MongoDB 2023年5月16日
    00
  • MongoDB快速入门笔记(六)之MongoDB的文档修改操作

    MongoDB是一个非关系型数据库,通过文档存储数据。在进行数据操作的时候,可以使用MongoDB提供的操作符和方法来完成一些文档的修改操作。 本文将重点介绍MongoDB的文档修改操作,包括增加、更新和删除文档。为了更好地理解,本文将使用两个例子来对文档修改操作进行演示。 一. 增加文档 向MongoDB中插入新的文档,可以使用MongoDB提供的方法——…

    MongoDB 2023年5月16日
    00
  • MongoDB集合中的文档管理

    MongoDB是一个非关系型数据库,它以文档存储数据,文档是一组键值对(key-value pairs)组成的数据结构,类似于JSON对象。在MongoDB中,文档存在于集合中,集合类似于关系型数据库中的表。在本篇攻略中,我们将讨论如何在MongoDB集合中管理文档。 创建集合 在MongoDB中,我们可以使用db.createCollection(name…

    MongoDB 2023年5月16日
    00
  • Mongodb安装与配置笔记

    下面是“Mongodb安装与配置笔记”的完整攻略。 Mongodb安装与配置 安装Mongodb 在Ubuntu系统中安装Mongodb 步骤1:添加Mongodb存储库 在终端输入以下命令来添加Mongodb存储库: sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0C…

    MongoDB 2023年5月16日
    00
  • MongoDB mongoexport工具的使用简介

    MongoDB是一个文档型的数据库,支持多种编程语言及各种查询语句,因此备受开发者的喜爱。对于开发者而言,对MongoDB进行备份是一项至关重要的任务。MongoDB的官方工具mongoexport就是一款很好的备份导出工具。本文将为大家详细介绍MongoDB mongoexport工具的使用简介及两个示例说明。 简介 mongoexport是MongoDB…

    MongoDB 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部