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

yizhihongxing

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聚合group的操作指南

    下面我将为你详细讲解MongoDB聚合操作中的group操作指南,并提供两个示例说明。 MongoDB聚合操作指南之group 什么是group group是MongoDB中的一个聚合操作,可以将文档按照指定的字段进行分组,然后通过聚合函数对每个分组进行操作,最终返回聚合结果。 group的语法 group操作的语法如下: db.collection.agg…

    MongoDB 2023年5月16日
    00
  • MongoDB删除数据库

    MongoDB是一个非关系型数据库,大多数MongoDB的操作是基于文档的,删除数据库也不例外。下面我们详解MongoDB删除数据库的完整攻略,包含代码示例。 停用服务 在删除MongoDB数据库之前,我们需要停用MongoDB服务。在Windows下我们需要打开命令行窗口并输入以下命令,将MongoDB服务停用: net stop MongoDB 进入Mo…

    MongoDB 2023年3月13日
    00
  • redis与mongodb的区别总结

    Redis与MongoDB的区别总结 Redis和MongoDB的概述 Redis和MongoDB都是热门的NoSQL数据库,但它们各自的设计和用途不同。Redis是基于内存的数据存储引擎,通常用于处理实时数据、缓存、队列等;而MongoDB则是一个基于磁盘的文档型数据库,通常用于存储结构化的数据。 数据模型 Redis是一个键值存储(key-value s…

    MongoDB 2023年5月16日
    00
  • MongoDB管理数据关系的3种方法

    MongoDB是一种非关系型数据库,用于存储和管理大量的、格式不固定的数据。MongoDB提供了一种灵活的数据模型,使得您可以轻松地存储和访问数据,而无需事先定义表结构。 在MongoDB中,关系的管理不同于传统的关系型数据库,因为它是基于文档的存储模型。 本文将详细介绍MongoDB中的关系管理,包括文档嵌套、引用和聚合等技术。 文档嵌套 文档嵌套是Mon…

    MongoDB 2023年3月14日
    00
  • Golang精编49面试题汇总(选择题)

    让我来详细讲解一下“Golang精编49面试题汇总(选择题)”的完整攻略。 首先,这份面试题汇总是由一位知名的Go语言程序员整理的,其中包含了49道选择题,题目涵盖了常识性问题、基础问题、进阶问题等多个方面,是一份较为全面的Go语言面试复习资料。 接下来,我会分别对其中两道示例题进行详细说明。 第一道示例题 func main() { m := map[in…

    MongoDB 2023年5月16日
    00
  • 基于Go和PHP语言实现爬楼梯算法的思路详解

    标题:【攻略】基于Go和PHP语言实现爬楼梯算法的思路详解 概述:本攻略主要介绍如何利用Go和PHP语言实现爬楼梯算法,包括算法思路、代码实现、示例说明等。 第一部分:算法思路 爬楼梯算法可以使用递归和迭代两种方式实现。 递归方式:爬n级楼梯,可以先爬(n-1)级楼梯,再爬1级楼梯;或者先爬(n-2)级楼梯,再爬2级楼梯。因此,爬n级楼梯的可能性为爬(n-1…

    MongoDB 2023年5月16日
    00
  • 浅析MongoDB用户管理

    浅析MongoDB用户管理 在MongoDB中,用户管理是非常重要的一项任务。用户管理包括用户创建、用户授权和用户删除等任何与用户相关的操作。在本篇文章中,我们将浅析MongoDB用户管理的相关操作。 用户创建 在MongoDB中,我们可以使用自带的用户认证功能进行用户创建和管理。用户认证是通过用户名和密码的形式来进行的。用户创建可以通过命令行或者Mongo…

    MongoDB 2023年5月16日
    00
  • 通过DBeaver连接Phoenix操作hbase的方法

    通过DBeaver连接Phoenix操作hbase的方法 安装DBeaver 首先,我们需要安装一个数据库管理工具DBeaver,可以从官网 https://dbeaver.io/download/ 下载对应的安装包进行安装。 配置Phoenix JDBC连接 下载Phoenix客户端JDBC驱动 要连接Phoenix,我们需要先下载并安装Phoenix客户…

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