MongoDB(java操作)
阿新 • • 發佈:2019-02-19
一、 準備工作
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));
}
}