zoukankan      html  css  js  c++  java
  • Java原生API访问MongoDB

    1.pom.xml

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.5.0</version>
    </dependency>

    2.Java代码

    package cn.duanjt;
    
    import java.util.Arrays;
    
    import org.bson.Document;
    import org.bson.conversions.Bson;
    import org.junit.Before;
    import org.junit.Test;
    
    import com.mongodb.Block;
    import com.mongodb.MongoClient;
    import com.mongodb.client.FindIterable;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.MongoDatabase;
    import com.mongodb.client.result.DeleteResult;
    
    //注意是静态导入
    import static com.mongodb.client.model.Updates.*;
    import static com.mongodb.client.model.Filters.*;
    
    public class MongoDB {
        MongoClient client;// mongo连接实例
        MongoDatabase dataBase;// 数据库
        MongoCollection<Document> collection;// 集合,类似于关系型数据库的表
    
        @Before
        public void init() {
            client = new MongoClient("192.168.23.24", 27022);
            dataBase = client.getDatabase("duanjt");
            collection = dataBase.getCollection("teacher");
        }
    
        // 插入一条数据
        @Test
        public void insert() {
            Document doc = new Document();
            doc.append("name", "李四");
            doc.append("addr", "重庆");
            doc.append("likes", Arrays.asList("排球", "篮球"));// 数组
            collection.insertOne(doc);// 插入数据时会自动创建数据库和集合
            System.out.println("success");
        }
    
        // 修改,把李四的爱好修改为 足球和羽毛球
        @Test
        public void update1() {
            Bson eq = eq("name", "张三");
            Bson set = set("likes", Arrays.asList("足球", "羽毛球"));
            collection.updateMany(eq, set);
            System.out.println("修改成功");
        }
    
        // 修改,把李四的爱好新增 足球和羽毛球
        @Test
        public void update2() {
            Bson eq = eq("name", "李四");
            Bson set = pushEach("likes", Arrays.asList("足球", "羽毛球"));
            collection.updateMany(eq, set);
            System.out.println("修改成功");
        }
    
        // 查询爱好足球的老师
        @Test
        public void find() {
            Bson filter = in("likes", Arrays.asList("足球"));
            FindIterable<Document> find = collection.find(filter);
            find.forEach(new Block<Document>() {
                @Override
                public void apply(Document t) {
                    System.out.println(t.toJson());
                }
            });
        }
    
        //删除数据
        @Test
        public void delete() {
            Bson filter = eq("name", "duanjt");
            DeleteResult deleteMany = collection.deleteMany(filter);
            System.out.println("删除数据:" + deleteMany.getDeletedCount());
        }
    
        // 删除集合
        @Test
        public void dropCol() {
            collection.drop();
            System.out.println("删除成功");
        }
    
    }

    稍微注意注释部分的代码即可

    MongoDB 关系型数据库
    数据库 数据库
    集合
    文档 一行数据
  • 相关阅读:
    Linux 的启动流程(转)
    HDU 4686 Arc of Dream (矩阵快速幂)
    自己编写jQuery动态引入js文件插件 (jquery.import.dynamic.script)
    Oracle job procedure 存储过程定时任务
    Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory
    Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
    Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
    软件设计之UML—UML的构成[上]
    软件设计之UML—UML中的六大关系
    ActiveMQ 即时通讯服务 浅析
  • 原文地址:https://www.cnblogs.com/duanjt/p/10315124.html
Copyright © 2011-2022 走看看