MongoDB的Java驅動已經(jīng)提供比較全的操作,分為三塊:
1.普通用戶操作
2.管理員操作
3.oplog操作
具體可以添加一個eclipse testng插件,再在工程中導入testng.jar包即可看到。
本文主要說明各個使用點和注意事項。
1.連接一個復制集(replica sets)mongod:
-
復制集是mongo解決穩(wěn)定性的一個方案,也是可以實現(xiàn)讀寫分離的一種實現(xiàn),這里介紹復制集的java連接方式。
[java]
1. static Mongo m;
2.
3. static { 4. List<ServerAddress> addresslist = new ArrayList<ServerAddress>(); 5. try { 6. addresslist.add(new ServerAddress("127.0.0.1:10240")); 7. addresslist.add(new ServerAddress("127.0.0.1:11240")); 8. addresslist.add(new ServerAddress("127.0.0.1:12240")); 9. } catch (UnknownHostException e) { 10. System.err.println("address check error."); 11. System.exit(-1); 12. }
13.
14. MongoOptions options = new MongoOptions(); 15. options.autoConnectRetry = true; 16. options.connectionsPerHost = 20; 17. options.connectTimeout = 6000; 18. options.maxAutoConnectRetryTime = 12000; 19. options.maxWaitTime = 12000; 20. options.socketKeepAlive = true; 21. options.socketTimeout = 2000; 22.
23. try { 24. m = new Mongo(addresslist, options); 25. } catch (MongoException e) { 26. System.err.println("mongo create error."); 27. System.exit(-1); 28. }
29. }
注:一般例子采用的連接方式是直接連一個mongod服務,但是作為單臺的生產(chǎn)環(huán)境顯然安全性不足,因此采用復制集方式,連接也區(qū)別于一般,是使用
[java]
1.public Mongo( List<ServerAddress> replicaSetSeeds , MongoOptions options ) throws MongoException
方法。
MongoOptions根據(jù)自己的需求設置,參數(shù)說明已經(jīng)很多了,不細講。
注意mongo實例使用單例模式。
2.獲取db:
[java]
1.DB db = m.getDB("test");
注:取到名為test的db進行操作;若該db不存在,該操作會創(chuàng)建對應的db。
3.獲取集合:
[java]
1.DBCollection col = db.getCollection("offer");
注:取名字為offer的集合;類似于db的表。
以上三個操作是建立連接,接下去才是db中常用的操作。
4.查詢:
[java]
1.DBCursor cursor = col.find();
2.while(cursor.hasNext()) { 3. System.out.println(cursor.next());
4. i++;
5.}
注:全集合查詢,輸出每條記錄,正常情況不會作類似操作,記住兩個東西,find()和cursor
[java]
1.BasicDBObject query = new BasicDBObject();
2.query = new BasicDBObject(); 3.query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30)); // i.e. 20 < i <= 30 4.<pre name="code" class="java"> DBCursor cur = coll.find(query); 5.while(cur.hasNext()) { 6. System.out.println(cur.next());
7.}
注:查詢指定條件的offer信息。
[java]
1.DBObject tmpdoc = col.findOne(doc);
注:查詢單條記錄;在很明確一條記錄有且只有一條時,findOne()比較方便,免得游標移動麻煩。
5.更新:
[java]
1.DBObject tmpdoc = col.findOne(doc);
2.tmpdoc.put("i", (Integer)tmpdoc.get("i")+1); 3.System.out.println("update obj: " + col.findOne(tmpdoc)); 注:更新一條記錄,先整個讀出再更新部分信息再寫入,切記不要讀出一部分更新回去。
6.插入:
[java]
1.int i=1000;
2.BasicDBObject doc = new BasicDBObject(); 3.doc.put("i", i+1); 4.col.insert(doc);
5.System.out.println("insert obj: " + col.findOne(doc)); 注:插入一條記錄{i:1001},_id自動生成。
7.刪除:
[java]
1.BasicDBObject doc = new BasicDBObject();
2.doc.put("i", i+1); 3.
4.col.remove(doc);
5.System.out.println("insert obj: " + col.findOne(doc)); 注:刪除一條記錄。
本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|