设为首页 收藏本站
查看: 1373|回复: 0

[经验分享] mongodb聚合查询

[复制链接]

尚未签到

发表于 2017-12-15 10:31:21 | 显示全部楼层 |阅读模式
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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424296-1-1.html 上篇帖子: MongoDb基础命令 下篇帖子: 【安装】MongoDB-3.4.6 on CentOS 6.8
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表