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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!