Java操作MongoDB


本文由兰州白癜风医院 http://www.fzjfh.com/收集,转载请注明出处 本文由兰州白癜风医院 http://www.fzjfh.com/收集,转载请注明出处 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 [java] view plaincopy 1. private static void mongodbOperating(){ 2. try { 3. //有多种构造方法,选择一种(IP、port) 4. Mongo m = new Mongo( "192.168.21.111" , 27017 ); 5. //选择数据库,如果没有这个数据库的话,会自动建立 6. DB db = m.getDB( "mydb" ); 7. 8. //建立一个集合,和数据库一样,如果没有,会自动建立 9. DBCollection collection = db.getCollection("myCollectionTest"); 10. 11. BasicDBObject doc = new BasicDBObject(); 12. doc.put("name", "MongoDB"); 13. doc.put("type", "database"); 14. doc.put("count", 1); 15. 16. BasicDBObject info = new BasicDBObject(); 17. info.put("x", 203); 18. info.put("y", 102); 19. doc.put("info", info); 20. 本文由兰州白癜风医院 http://www.fzjfh.com/收集,转载请注明出处 本文由兰州白癜风医院 http://www.fzjfh.com/收集,转载请注明出处 21. //插入一条数据,数据如下 22. // { 23. // "name" : "MongoDB", 24. // "type" : "database", 25. // "count" : 1, 26. // "info" : { 27. // x : 203, 28. // y : 102 29. // } 30. // } 31. // 可以循环插入多条数据 32. collection.insert(doc); 33. //查找第一条数据,显示如下,_id 是系统自动帮加上的,全局唯一 34. //{ "_id" : "49902cde5162504500b45c2c" , "name" : "MongoDB" , "t ype" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}} 35. DBObject myDoc = collection.findOne(); 36. System.out.println(myDoc); 37. 38. //插入多条数据 39. for (int i=0; i < 100; i++) { 40. collection.insert(new BasicDBObject().append("i", i)); 41. } 42. 43. 44. //获取文档条数 45. System.out.println(collection.getCount()); 46. 47. //使用 Cursor 获取所有文档 48. DBCursor cursor = collection.find(); 49. try { 50. while(cursor.hasNext()) { 51. System.out.println(cursor.next()); 52. } 53. } finally { 54. cursor.close(); 55. } 56. 57. //查找操作,获取单条记录 58. //{ "_id" : "49903677516250c1008d624e" , "i" : 71 } 59. BasicDBObject query = new BasicDBObject(); 60. query.put("i", 71); 61. cursor = collection.find(query); 62. try { 63. while(cursor.hasNext()) { 本文由兰州白癜风医院 http://www.fzjfh.com/收集,转载请注明出处 本文由兰州白癜风医院 http://www.fzjfh.com/收集,转载请注明出处 64. System.out.println(cursor.next()); 65. } 66. } finally { 67. cursor.close(); 68. } 69. 70. //查找 i>50 的项 71. query = new BasicDBObject(); 72. query.put("i", new BasicDBObject("$gt", 50)); // e.g. find all where i > 50 73. cursor = collection.find(query); 74. try { 75. while(cursor.hasNext()) { 76. System.out.println(cursor.next()); 77. } 78. } finally { 79. cursor.close(); 80. } 81. 82. 83. //查找 20 list = collection.getIndexInfo(); 125. for (DBObject o : list) { 126. System.out.println(o); 127. } 128. 129. //获取数据库列表 130. for (String s : m.getDatabaseNames()) { 131. System.out.println(s); 132. } 133. //获取集合列表 134. Set colls = db.getCollectionNames(); 135. for (String s : colls) { 136. System.out.println(s); 137. } 138. 139. //删除数据库 140. //m.dropDatabase("my_new_db"); 141. 142. 143. } catch (UnknownHostException e) { 144. // TODO Auto-generated catch block 145. e.printStackTrace(); 146. } 147. }
还剩3页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享pdf获得金币 ] 3 人已下载

下载pdf

pdf贡献者

wwwg

贡献于2014-02-08

下载需要 3 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf