mongodb学习笔记

268 阅读1分钟

首先引入依赖

    <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.6.0</version>
    </dependency>
    MongoClient mc = null;
    MongoDatabase database = null;
    MongoCollection<Document> collection = null;
    @Before
    public void before(){
        //建立一个连接
        mc = new MongoClient("localhost",27017 );
        //获取一个数据库
        database = mc.getDatabase("mydb");
        //获取一个集合
        collection = database.getCollection("test");

    }

    @Test
    public void insert(){
        //创建一个文档
        Document doc = new Document("name", "MongoDB")
                .append("type", "database")
                .append("count", 1)
                .append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
                .append("info", new Document("x", 203).append("y", 102));
        //插入一个文档
        collection.insertOne(doc);
    }
    @Test
    public void insertMany(){
        //插入多个文档
        List<Document> documents = new ArrayList<Document>();
        for (int i = 0; i < 100; i++) {
            documents.add(new Document("i", i));
        }
        collection.insertMany(documents);
    }
    @Test
    public void count(){
        //集合长度
        System.out.println("集合长度:"+collection.count());
    }
    @Test
    public  void firstQuery(){
        //获取集合第一个文档
        Document myDoc = collection.find().first();
        System.out.println(myDoc.toJson());

    }

    @Test
    public void allQuery(){
        //遍历集合,获取每个文档
        MongoCursor<Document> cursor = collection.find().iterator();
        try {
            while (cursor.hasNext()) {
                System.out.println(cursor.next().toJson());
            }
        } finally {
            cursor.close();
        }
    }
    @Test
    public void allQuery2(){
        //遍历集合,获取每个文档
        //官方不推荐这种用法
        for (Document cur : collection.find()) {
            System.out.println(cur.toJson());
        }
    }
    @Test
    public void allQuery3(){
        //遍历集合,获取每个文档,分页
        MongoCursor<Document> cursor = collection.find().skip(10).limit(5).iterator();
        try {
            while (cursor.hasNext()) {
                System.out.println(cursor.next().toJson());
            }
        } finally {
            cursor.close();
        }
    }

    @Test
    public void eq(){

        //查询i=100的文档
        Document myDoc = collection.find(Filters.eq("i", 100)).first();
        System.out.println(myDoc.toJson());
    }

    @Test
    public void gt(){
        //查询i>50
        Block<Document> printBlock = new Block<Document>() {
            public void apply(final Document document) {
                System.out.println(document.toJson());
            }
        };

        collection.find(Filters.gt("i", 50)).forEach(printBlock);
    }

    @Test
    public void between(){
        //查询i>=50 and i<=100
        Block<Document> printBlock = new Block<Document>() {
            public void apply(final Document document) {
                System.out.println(document.toJson());
            }
        };
        collection.find(Filters.and(gte("i", 50), Filters.lte("i", 100))).forEach(printBlock);
    }
    @Test
    public void updateOne(){

        collection.updateOne(Filters.eq("i", 10), new Document("$set", new Document("i", 110)));
    }

    @Test
    public void updateMany(){
        UpdateResult updateResult = collection.updateMany(Filters.lt("i", 100), Updates.inc("i", 100));
        System.out.println(updateResult.getModifiedCount());
    }

    @Test
    public void deleteOne(){
        collection.deleteOne(Filters.eq("i", 110));
    }

    @Test
    public void deleteBetween(){
        DeleteResult deleteResult = collection.deleteMany(Filters.gte("i", 100));
        System.out.println(deleteResult.getDeletedCount());
    }

    @Test
    public void addIndex(){
        collection.createIndex(new Document("i", 1));
    }