Java操作MongoDB

本篇博客學習如何用Java操作MongoDB,希望能給各位博友帶來幫助。

Java操作MongoDB

mongodb-driver是mongo官方推出的java連接mongoDB的驅動包,相當於JDBC驅動。我們通過一個入門的案例來了解mongodb-driver的基本使用。

(1)創建工程 mongoDemo, 引入依賴

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

(2)創建測試類
查詢,新增

package com.changan.test;

import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

public class StudentTest {

    MongoClient mongoClient = null;
    MongoCollection<Document> student = null;
    @Before
    public void before(){
        mongoClient = new MongoClient("192.168.159.135"); //創建連接
        MongoDatabase studentdb = mongoClient.getDatabase("studentdb"); //打開數據庫
        student = studentdb.getCollection("student"); //獲取集合

    }

    @Test
    public void findAll(){
        //查詢所以數據
        FindIterable<Document> documents = student.find();
        for (Document document :documents
        ) {
            System.out.println("編號:"+document.getInteger("_id"));
            System.out.println("姓名:"+document.getString("name"));
            System.out.println("年齡:"+document.getInteger("age"));
            System.out.println("性別:"+document.getString("sex"));
            System.out.println("簡介:"+document.getString("introduce"));
        }
    }

    @Test
    public void findById(){
        //根據Id查詢數據
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("_id",1);
        BasicDBObject bson = new BasicDBObject(map);
        FindIterable<Document> documents = student.find(bson);
        for (Document document :documents
        ) {
            System.out.println("編號:"+document.getInteger("_id"));
            System.out.println("姓名:"+document.getString("name"));
            System.out.println("年齡:"+document.getInteger("age"));
            System.out.println("性別:"+document.getString("sex"));
            System.out.println("簡介:"+document.getString("introduce"));
        }
    }

    @Test
    public void findByCondition(){
        //條件查詢數據
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("age",new BasicDBObject("$gte",16));
        BasicDBObject bson = new BasicDBObject(map);
        FindIterable<Document> documents = student.find(bson);
        for (Document document :documents
        ) {
            System.out.println("編號:"+document.getInteger("_id"));
            System.out.println("姓名:"+document.getString("name"));
            System.out.println("年齡:"+document.getInteger("age"));
            System.out.println("性別:"+document.getString("sex"));
            System.out.println("簡介:"+document.getString("introduce"));
        }
    }

    @Test
    public void save(){
        //新增數據
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("_id",6);
        map.put("name","主站強");
        map.put("age",20);
        map.put("sex","男");
        map.put("introduce","帥");
        Document document = new Document(map);
        student.insertOne(document);
    }

    @After
    public void after(){
        if(mongoClient!=null){
            mongoClient.close();
        }
    }
}
發佈了41 篇原創文章 · 獲贊 136 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章