Java操作MongoDB之mongodb-driver

时间:2023-01-07 02:40:42

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。
通过一个入门的案例来了解mongodb-driver的基本使用:

1、查询全部记录

1.1、创建工程mongoDemo,引入依赖

<dependency>
	<groupId>org.mongodb</groupId>
	<artifactId>mongodb-driver</artifactId>
	<version>3.6.3</version>
</dependency>

1.2、创建测试类

public class MongoDemo1 {
    public static void main(String[] args) {
        // 创建连接
        MongoClient client = new MongoClient("192.168.206.128");
        // 打开数据库spitdb
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");
        // 查询记录,获取文档集
        FindIterable<Document> documents = spit.find();
        // 循环遍历
        for (Document document : documents) {
            System.out.println("内容:" + document.getString("content"));
            System.out.println("用户ID:" + document.getString("userid"));
            System.out.println("浏览量:" + document.getInteger("visits"));
        }
        // 关闭连接
        client.close();
    }
}

2、条件查询

BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,是key/value的数据结构,用起来和HashMap是基本一致的。

2.1、查询userid为1013的记录

public class MongoDemo1 {
    public static void main(String[] args) {
        // 创建连接
        MongoClient client = new MongoClient("192.168.206.128");
        // 打开数据库spitdb
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");

        // 构建查询条件,通过userid进行查询
        BasicDBObject bson = new BasicDBObject("userid", "1013");

        // 通过userid查询记录获取文档集
        FindIterable<Document> documents = spit.find(bson);
        // 循环遍历
        for (Document document : documents) {
            System.out.println("内容:" + document.getString("content"));
            System.out.println("用户ID:" + document.getString("userid"));
            System.out.println("浏览量:" + document.getInteger("visits"));
        }
        // 关闭连接
        client.close();
    }
}

2.2、查询浏览量大于1000的记录

public class MongoDemo2 {
    public static void main(String[] args) {
        // 创建连接
        MongoClient client = new MongoClient("192.168.206.128");
        // 打开数据库spitdb
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");

        // 构建查询条件,查询visits大于1000的结果
        BasicDBObject bson = new BasicDBObject("visits", new BasicDBObject("$gt", 1000));

        // 通过userid查询记录获取文档集
        FindIterable<Document> documents = spit.find(bson);
        // 循环遍历
        for (Document document : documents) {
            System.out.println("内容:" + document.getString("content"));
            System.out.println("用户ID:" + document.getString("userid"));
            System.out.println("浏览量:" + document.getInteger("visits"));
        }
        // 关闭连接
        client.close();
    }
}

3、插入数据

public class MongoDemo3 {
    public static void main(String[] args) {
        // 创建连接
        MongoClient client = new MongoClient("192.168.206.128");
        // 打开数据库spitdb
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");

        // 准备数据
        HashMap<String, Object> map = new HashMap<>();
        map.put("content", "我要吐槽");
        map.put("userid", "9999");
        map.put("visits", 123);
        map.put("publishtime", new Date());
        //
        Document document = new Document(map);
        // 插入一条数据
        spit.insertOne(document);

        // 关闭连接
        client.close();
    }
}