当前位置:Gxlcms > 数据库问题 > mongodb聚合查询

mongodb聚合查询

时间:2021-07-01 10:21:17 帮助过:16人阅读

BasicDBObject limit = new BasicDBObject();
-------------字段名-------------BasicDBObject("聚合表达式","条件")
limit.append("items", new BasicDBObject().append("$slice", new int[]{0, 15}));
  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   
 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" , "type" : "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()) {  
 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<i<=30  
 84             query = new BasicDBObject();  
 85             query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));  // i.e.   20 < i <= 30  
 86             cursor = collection.find(query);  
 87             try {  
 88                 while(cursor.hasNext()) {  
 89                     System.out.println(cursor.next());  
 90                 }  
 91             } finally {  
 92                 cursor.close();  
 93             }  
 94   
 95             //修改 i=71的一项  
 96             query = new BasicDBObject();  
 97             query.put("i", 71);  
 98             BasicDBObject update = new BasicDBObject();  
 99             update.put("i", 710);  
100             DBObject dbobj = collection.findAndModify(query, update);  
101             System.out.println(dbobj);  
102               
103             //修改 i=72的一项  
104             query = new BasicDBObject();  
105             query.put("i", 72);  
106             update = new BasicDBObject();  
107             update.put("i", 720);  
108             WriteResult result = collection.update(query, update);  
109             System.out.println(result);  
110               
111             //删除i=61的项  
112             query = new BasicDBObject();  
113             query.put("i", 61);  
114             collection.findAndRemove(query);  
115             //删除i=62的项  
116             BasicDBObject remove = new BasicDBObject();  
117             remove.put("i", 62);  
118             collection.remove(remove);  
119               
120             //创建索引 1为升序、-1为降序  
121             collection.createIndex(new BasicDBObject("i", 1));  // create index on "i", ascending  
122   
123             //获取索引列表  
124             List<DBObject> 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<String> 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     }  

 



mongodb聚合查询

标签:添加   object   group   均值   log   final   auto   限制   pen   

人气教程排行