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日

相关文章

  • Docker 的健康检测机制

    Docker 的健康检测机制是指能够监测容器内应用程序健康状态的一种机制。该机制通过定期检测容器内应用程序的运行状态,如网络连接状况、磁盘 I/O 等,来判断应用程序是否运行正常。 Docker 的健康检测机制需要在容器的 Dockerfile 中进行配置。在 Dockerfile 中定义 HEALTHCHECK 命令,即可对应用程序的健康状况进行检测。HE…

    MongoDB 2023年5月16日
    00
  • MongoDB的基本安装与管理命令脚本总结

    我为您详细讲解“MongoDB的基本安装与管理命令脚本总结”的完整攻略,以下是具体步骤: 安装MongoDB: 在Ubuntu和Debian等基于Debian的Linux发行版上,可以通过以下命令安装MongoDB: sudo apt-get update sudo apt-get install mongodb 在RHEL、CentOS等基于RedHat的…

    MongoDB 2023年5月16日
    00
  • MongoDB中javascript脚本编程简介和入门实例

    下面详细讲解MongoDB中JavaScript脚本编程的简介和入门实例。 MongoDB中JavaScript脚本编程简介 MongoDB是一款NoSQL数据库,采用文档型数据库的方式进行数据存储。与传统的关系型数据库相比,MongoDB更加灵活和方便。并且MongoDB中使用JavaScript脚本作为其查询和操作语言,因此JavaScript脚本编程在…

    MongoDB 2023年5月16日
    00
  • PHP操作MongoDB GridFS 存储文件的详解

    可以参考以下的完整攻略。 PHP操作MongoDB GridFS 存储文件的详解 什么是MongoDB GridFS MongoDB GridFS是MongoDB数据库中的一种机制,用于存储大型二进制文件,如图片,音频和视频等文件。GridFS把大文件分成小的块并保存在MongoDB集合中,它使用两个集合来存储文件:fs.files和fs.chunks fs…

    MongoDB 2023年5月16日
    00
  • ubuntu取消pppoe启动时自动拔号的设置方法

    下面是详细的“ubuntu取消pppoe启动时自动拔号的设置方法”的攻略: 1. 确认当前系统网络连接方式 首先,我们需要确认当前系统是使用 pppoe 拨号方式连接网络还是其他方式。可以在命令行中输入以下命令确认: nmcli connection show 如果当前系统是使用 pppoe 拨号方式连接网络,则会看到类似如下输出结果: NAME UUID …

    MongoDB 2023年5月16日
    00
  • mongodb 数据类型(null/字符串/数字/日期/内嵌文档/数组等)

    MongoDB是一个面向文档存储的NoSQL数据库,因此其支持多种数据类型。下面我来详细讲解MongoDB的数据类型,包括null、字符串、数字、日期、内嵌文档和数组等。 null类型 null类型表示不存在的或未定义的值。在MongoDB中,null类型常用于占位符或初始化。 例如,下面示例创建一个包含null值的文档: db.collection.ins…

    MongoDB 2023年5月16日
    00
  • MongoDB的基础知识简介

    下面我将为你详细讲解MongoDB的基础知识简介的完整攻略。 MongoDB的基础知识简介 什么是MongoDB? MongoDB是一个开源的、高性能、文档数据库。相比于传统的关系型数据库,MongoDB更加适合于存储非结构化的数据,例如JSON格式的文档。 MongoDB的安装与配置 安装MongoDB MongoDB的安装可以通过官网提供的二进制文件或者…

    MongoDB 2023年5月16日
    00
  • MongoDB连接数据库方法详解

    安装MongoDB 在开始连接MongoDB之前,需要先安装MongoDB。可以到官网下载对应的安装程序安装,或者通过命令行安装。以下是在Ubuntu系统中通过命令行安装的步骤: 添加apt-key wget -qO – https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add …

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