1. 程式人生 > >MongoDB使用Java操作資料庫案例

MongoDB使用Java操作資料庫案例

一、pom.xml依賴

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

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

	</dependencies>

二、增刪查改程式碼

package com.sunft;

import java.util.Map;

import org.bson.types.ObjectId;
import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;

/**
 * 使用Java程式碼來呼叫Mongodb資料庫
 * 
 * @author sunft
 * 
 */
public class MongoDbDao {

	/**
	 * 增加
	 * 
	 * @throws Exception
	 */
	@Test
	public void add() throws Exception {
		// 建立起一個連線
		Mongo mongo = new Mongo("localhost", 27017);
		// 獲取到指定的資料庫
		DB db = mongo.getDB("test");
		DBCollection dbcollection = db.getCollection("person");
		// 預設為{}
		DBObject dbobject = new BasicDBObject();
		dbobject.put("name", "卡卡羅特");
		dbobject.put("age", 18);
		// db.collectionName.insert
		dbcollection.insert(dbobject);
		mongo.close();
	}

	/**
	 * 查詢
	 * @throws Exception
	 */
	@Test
	public void testQuery() throws Exception {
		// 建立起一個連線
		Mongo mongo = new Mongo("localhost", 27017);
		// 獲取到指定的資料庫
		DB db = mongo.getDB("test");
		DBCollection dbCollection = db.getCollection("person");
		// {}
		// db.collectionName.find();
		DBObject dbobject = new BasicDBObject();
		dbobject.put("age", 18);
		// 返回結果集
		DBCursor dbCursor = dbCollection.find(dbobject);
		// 遍歷獲取結果集
		while (dbCursor.hasNext()) {
			DBObject dbo = dbCursor.next();
			Map map = dbo.toMap();
			for (Object key : map.keySet()) {
				System.out.println("key:" + key.toString());
			}

			for (Object value : map.values()) {
				System.out.println("value:" + value.toString());
			}

		}

	}

	/**
	 * 刪除
	 * @throws Exception
	 */
	@Test
	public void testRemove() throws Exception {
		// 建立起一個連線
		Mongo mongo = new Mongo("localhost", 27017);
		// 獲取到指定的資料庫
		DB db = mongo.getDB("test");
		DBCollection dbCollection = db.getCollection("person");
		DBObject dbobject = new BasicDBObject();
		dbCollection.remove(dbobject);
		mongo.close();
	}
	
	/**
	 * 更新
	 * @throws Exception
	 */
	@Test
	public void testUpdate() throws Exception {
		// 建立起一個連線
		Mongo mongo = new Mongo("localhost", 27017);
		// 獲取到指定的資料庫
		DB db = mongo.getDB("test");
		DBCollection dbCollection = db.getCollection("person");
		/**
		 * 更新的條件
		 * 更新的內容的物件
		 * 如果沒有符合條件的記錄,是否新增一條記錄
		 * 如果有多條記錄符合,是否全部更新
		 */
		DBObject updateCondition=new BasicDBObject();  
        
        updateCondition.put("_id", new ObjectId("5b1089ff44634a6c9ac6ddd2")); 
		DBObject updatedValue=new BasicDBObject();  
        updatedValue.put("name", "貝吉塔");  
          
        DBObject updateSetValue=new BasicDBObject("$set",updatedValue);
		int n = dbCollection.update(updateCondition, updateSetValue, true, true).getN();
		System.out.println(n);
		mongo.close();
	}

}