• mongoDB的demo


    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();  
            }  
        }  
    1.这里只记录一些学习笔记 2.这里只记录一些学习心得,如果心得方向有错,请留言 2.这里只记录一些日记(只为提升英语,暂时有点忙,等转行了开始写)
  • 相关阅读:
    常用AIX论坛地址介绍
    向日葵任务甘特图 http://www.51diaodu.cn/
    centos 中tomcat加入自启动​【转】
    徐州出差几天
    Unit OneC
    周末来了~
    北京展览馆参加第6届石油石化装备展览会
    王心凌 我会好好的 cyndi with u
    VS中Debug与Release、_WIN32与_WIN64的区别
    c语言中<stdbool.h>的使用
  • 原文地址:https://www.cnblogs.com/liyang31tg/p/3577829.html
Copyright © 2020-2023  润新知