Java操作MongoDB
java驅動程序是Mongodb中的驅動程序之一,也是比較成熟的Mongodb驅動程序之一,下面介紹了使用java連接、操作Mongodb。
一、安裝java驅動程序
Mongodb的java驅動程序是一個jar包,可以在:https://github.com/mongodb/mongo-java-driver/downloads 下載,下載的jar導入到eclipse的項目中即可。
二、java操作Mongodb
java操作Mongodb常用的幾個類:
Mongo:連接服務器,執行一些數據庫操作的選項,如新建立一個數據庫等
DB:對應一個數據庫,可以用來建立集合等操作
DBCollection:對應一個集合(類似表),可能是我們用得最多的,可以添加刪除記錄等
DBObject接口和BasicDBObject對象:表示一個具體的記錄,BasicDBObject實現了DBObject,是key-value的數據結構,用起來和HashMap是基本一致的。
DBCursor:用來遍歷取得的數據,實現了Iterable和Iterator
private static void mongodbOperating(){
try {
//有多種構造方法,選擇一種(IP、port)
Mongo m = new Mongo( "192.168.21.111" , 27017 );
//選擇數據庫,如果沒有這個數據庫的話,會自動建立
DB db = m.getDB( "mydb" );
//建立一個集合,和數據庫一樣,如果沒有,會自動建立
DBCollection collection = db.getCollection("myCollectionTest");
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);
BasicDBObject info = new BasicDBObject();
info.put("x", 203);
info.put("y", 102);
doc.put("info", info);
//插入一條數據,數據如下
// {
// "name" : "MongoDB",
// "type" : "database",
// "count" : 1,
// "info" : {
// x : 203,
// y : 102
// }
// }
// 可以循環插入多條數據
collection.insert(doc);
//查找第一條數據,顯示如下,_id是系統自動幫加上的,全局唯一
//{ "_id" : "49902cde5162504500b45c2c" , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}}
DBObject myDoc = collection.findOne();
System.out.println(myDoc);
//插入多條數據
for (int i=0; i < 100; i++) {
collection.insert(new BasicDBObject().append("i", i));
}
//獲取文檔條數
System.out.println(collection.getCount());
//使用Cursor 獲取所有文檔
DBCursor cursor = collection.find();
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
//查找操作,獲取單條記錄
//{ "_id" : "49903677516250c1008d624e" , "i" : 71 }
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cursor = collection.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
//查找 i>50的項
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 50)); // e.g. find all where i > 50
cursor = collection.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
//查找 20<i<=30
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30)); // i.e. 20 < i <= 30
cursor = collection.find(query);
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
//修改 i=71的一項
query = new BasicDBObject();
query.put("i", 71);
BasicDBObject update = new BasicDBObject();
update.put("i", 710);
DBObject dbobj = collection.findAndModify(query, update);
System.out.println(dbobj);
//修改 i=72的一項
query = new BasicDBObject();
query.put("i", 72);
update = new BasicDBObject();
update.put("i", 720);
WriteResult result = collection.update(query, update);
System.out.println(result);
//刪除i=61的項
query = new BasicDBObject();
query.put("i", 61);
collection.findAndRemove(query);
//刪除i=62的項
BasicDBObject remove = new BasicDBObject();
remove.put("i", 62);
collection.remove(remove);
//創建索引 1為升序、-1為降序
collection.createIndex(new BasicDBObject("i", 1)); // create index on "i", ascending
//獲取索引列表
List<DBObject> list = collection.getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
}
//獲取數據庫列表
for (String s : m.getDatabaseNames()) {
System.out.println(s);
}
//獲取集合列表
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
//刪除數據庫
//m.dropDatabase("my_new_db");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} 本文由用戶 Mongodb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!