Java操作MongoDB

    xiaoxiao2021-12-14  40

    http://www.mongodb.org/display/DOCS/Java+Tutorial  

      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 plain  copy  print ? 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();           }       }  
    转载请注明原文地址: https://ju.6miu.com/read-963932.html

    最新回复(0)