1. 程式人生 > >MongoDB(java操作)

MongoDB(java操作)

一、 準備工作

MongoDB與java連線需要相應驅動,可用maven新增相應依賴:

   <dependencies>
    <dependency>
      <groupId>org.mongo</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.2.2</version>
    </dependency>
  </dependencies>

或者自行下載新增至構建路徑即可:

mongodb驅動

二、 java操作資料庫

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import
com.mongodb.client.model.Filters; public class Test { static MongoDatabase db = null; static MongoClient mongoClient = null; public static void main(String[] args) { try { db = Connect("mydb"); find("mycol"); insert("mycol"); find("mycol"
); } catch (Exception e) { e.printStackTrace(); }finally { mongoClient.close(); } } /** * 獲得與資料庫的連線 * @param dbName * @return * @throws Exception */ public static MongoDatabase Connect(String dbName) throws Exception{ try { //啟用Mongo客戶端訪問MongoDB服務 mongoClient = new MongoClient("localhost", 27017); //連線到相應資料庫 MongoDatabase db = mongoClient.getDatabase(dbName); System.out.println("connect successfully"); return db; } catch (Exception e) { throw new Exception(); } } /** * 向資料庫當中插入文件 * @param collectionName */ public static void insert(String collectionName){ MongoCollection<Document> collection = db.getCollection(collectionName); /* * 建立org.bson.Document 引數為key-value鍵值對 * 建立文件集合List * 將文件集合插入資料庫當中 * insertMany(List)可以插入多個文件 * insertOne(Document)可以插入一個文件 */ Document document = new Document("title", "Mondbnew"). append("description", "database"). append("likes", 100). append("by", "super"); List<Document> list = new ArrayList<>(); list.add(document); collection.insertMany(list); System.out.println("insert successfuly"); } /** * 檢索資料庫當中文件 * @param collectionName */ public static void find(String collectionName){ MongoCollection<Document> collection = db.getCollection(collectionName); /* * 獲取迭代器 * 通過迭代器獲取遊標 * 通過遊標遍歷文件 */ FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> cursor = findIterable.iterator(); while(cursor.hasNext()){ System.out.println(cursor.next()); } } /** * 更新文件 * @param collectionName */ public static void update(String collectionName){ MongoCollection<Document> collection = db.getCollection(collectionName); //更新文件 將原likes:100修改為likes:200 collection.updateMany(Filters.eq("likes", 100), new Document("$set", new Document("likes", 200))); System.out.println("update successfly"); } /** * 刪除文件 * @param collectionName */ public static void remove(String collectionName){ MongoCollection<Document> collection = db.getCollection(collectionName); //刪除符合條件的第一個文件 collection.deleteOne(Filters.eq("likes", 200)); //刪除符合條件的第二個文件 collection.deleteMany(Filters.eq("likes", 200)); } }