首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 學習筆記:從連線操作到 CRUD 實戰

     編輯:DB2 教學

MongoDB 學習筆記:從連線操作到 CRUD 實戰

整理這幾天學習 MongoDB 的核心心得,涵蓋 Java 驅動程式的連線管理、資料庫與集合操作、文檔的新增、查詢以及 JSON 轉換技巧,供日後查閱參考。

一、靈活的 MongoClient 連線工具類

為了適應單機、指定 IP/Port、以及叢集等多種部署場景,封裝了一個通用的 MongoDbUtil 工具類。核心邏輯透過可變長參數 int... port 判斷連線模式:

  • 無 Port 參數:預設連線 localhost:27017 或指定 Host 的預設端口。
  • 單一 Port:連線指定 Host 與 Port。
  • 多 Port:解析 Host 列表(逗號分隔)與 Port 陣列,建立 ServerAddress 列表連線叢集,驅動會自動發現 Primary 節點。
public static MongoClient getMongoClient(String host, int... port) {
    MongoClient mongoClient = null;
    int portlen = (port != null) ? port.length : 0;
    try {
        switch (portlen) {
            case 0:
                mongoClient = (host != null && !host.isEmpty()) ? new MongoClient(host) : new MongoClient();
                break;
            case 1:
                mongoClient = new MongoClient(host, port[0]);
                break;
            default:
                List<ServerAddress> seeds = new ArrayList<>();
                String[] hosts = host.split(",");
                for (int i = 0; i < portlen; i++) {
                    seeds.add(new ServerAddress(hosts[i], port[i]));
                }
                mongoClient = new MongoClient(seeds);
                break;
        }
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    return mongoClient;
}

二、基礎資料庫與集合操作

取得 MongoClient 實例後,即可列出所有資料庫、切換目標資料庫、獲取集合名稱(相當於關聯式資料表):

MongoClient mongoClient = MongoDbUtil.getMongoClient("192.168.1.101", 27017);
// 列印所有資料庫名稱
for (String name : mongoClient.getDatabaseNames()) {
    System.out.println("databaseName: " + name);
}
// 獲取指定資料庫
DB db = mongoClient.getDB("xuywdb");
// 獲取所有集合名稱
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
    System.out.println(s);
}

三、文檔新增與查詢實戰

MongoDB 使用 DBObject(通常用 BasicDBObject)表示文檔。新增資料只需 put 鍵值對並呼叫 insert():

public void insertUser(DBCollection t_user) {
    DBObject user1 = new BasicDBObject("username", "張三")
        .append("userage", 18).append("usersex", "男");
    DBObject user2 = new BasicDBObject("username", "小紅")
        .append("userage", 19).append("usersex", "女");
    t_user.insert(user1);
    t_user.insert(user2);
}

查詢所有文檔會返回 DBCursor 游標,逐筆迭代輸出:

DBCollection t_user = db.getCollection("t_user");
DBCursor cursor = t_user.find();
while (cursor.hasNext()) {
    System.out.println(cursor.next());
}

輸出範例:

{ "_id" : { "$oid" : "5550bf41d975cf177eab8d1f" } , "username" : "張三" , "userage" : 18 , "usersex" : "男" }
{ "_id" : { "$oid" : "5550bf41d975cf177eab8d20" } , "username" : "小紅" , "userage" : 19 , "usersex" : "女" }

四、DBObject 與 JSON 互轉

驅動內建 JSON 工具類,方便與前端或其他系統交換資料:

  • JSON.serialize(dbObject):將 DBObject 序列化為 JSON 字串。
  • JSON.parse("{ 'name' : 'xuyw', 'age' : 23 }"):將 JSON 字串解析為 DBObject。

掌握這些基礎 API,即可在 Java 應用中靈活操作 MongoDB,後續再深入索引、聚合管線、事務等進階主題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved