MongoDB java 基础操作 CRUD GROUP

一、mongoDB 基于简单的CRUD 操作GROUP 查询

     1、需要的jar 架包,可在  http://pan.baidu.com/s/1sjVowyD 找到。

        

import java.net.UnknownHostException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;

/**
 * TODO:
 * @author liyong
 * @Date 2016年1月20日 下午3:57:54
 */
public class MongoDBTest {
    public static void main(String[] args) throws UnknownHostException, MongoException {
        //连接数据库
        Mongo mg = new Mongo("127.0.0.1", 27017);
        //查询所有的Database
        for (String name : mg.getDatabaseNames()) {
            System.out.println("dbName: " + name);
        }
        //连接到 mydb 中
        DB db = mg.getDB("mydb");
        //查询所有的聚集集合
        for (String name : db.getCollectionNames()) {
            System.out.println("collectionName: " + name);
        }
        //获取单一聚合  users 操作 
        DBCollection usersCollection = db.getCollection("users");

        searchAll(usersCollection);
    }
}

1、查询操作

<span style="font-size:14px;">    public static void searchAll(DBCollection usersCollection){
        //查询操作
        DBCursor cur = usersCollection.find();
        while (cur.hasNext()) {
            System.out.println(cur.next());
        }
        System.out.println("count  :" + cur.count());
        System.out.println("游  标           :" + cur.getCursorId());
        System.out.println("序  列  化     :" + JSON.serialize(cur));
        
    }</span>

2、添加操作

      public static void add(DBCollection usersCollection){
        //方法a:循环添加
        for (int i = 0; i < 20; i++) {
            int age = i % 5;
            DBObject user = new BasicDBObject();
            user.put("id", i);
            user.put("name", "user"+i);
            user.put("age",age);
            usersCollection.save(user);
        }
        
        //方法b:添加 多条数据,传递Array对象 
        DBObject user = new BasicDBObject();
        user.put("id", 20);
        user.put("name", "user"+20);
        user.put("age",20);
        usersCollection.save(user);
        usersCollection.insert(user, new BasicDBObject("name", "tom2")).getN(); //添加多条数据,传递Array对象 
      
        //方法c:添加List集合
        List<DBObject> list = new ArrayList<DBObject>();
        list.add(user);
        DBObject user2 = new BasicDBObject("name", "lucy");
        user.put("age", 22);
        list.add(user2);
        usersCollection.insert(list);
        
    }

3、更改操作

   public static void updateDB(DBCollection usersCollection){
        DBObject upUser = new BasicDBObject();
        upUser.put("name", "updateName");
        upUser.put("age", 99);
        upUser.put("sex", "updateSex");
        usersCollection.update(new BasicDBObject("_id", new ObjectId("569f2e8496d7c496764dd0b4")), upUser);
    }

4. 删除操作

    public static void deleDB(DBCollection usersCollection){
        //根据_id 删除
        usersCollection.remove(new BasicDBObject("_id", new ObjectId("569f2e8496d7c496764dd0b5")));
        //直接删除对象
        DBObject upUser = new BasicDBObject();
        upUser.put("name", "updateName");
        upUser.put("age", 99);
        upUser.put("sex", "updateSex");
        usersCollection.remove(upUser);
    }
5.根据条件分组统计GROUP

    public static void searchGroup(DBCollection usersCollection){
       //使用group 根据年龄,统计 不同年龄的人数
        BasicDBObject key = new BasicDBObject("age",true);  //分组KEY    
        BasicDBObject cond = new BasicDBObject("id",new BasicDBObject(QueryOperators.GT,0));     
        BasicDBObject initial = new BasicDBObject("count",0); //统计字段    
        String reduce = "function (doc,prev){  prev.count++ }";  //计算函数
        BasicDBList group =  (BasicDBList) usersCollection.group(key,cond,initial,reduce);      
        System.out.println("group:"+group);   
    }

所有源码参考:

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import org.bson.types.ObjectId;

import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.QueryOperators;
import com.mongodb.util.JSON;

/**
 * TODO:
 * @author liyong
 * @Date 2016年1月20日 下午3:57:54
 */
public class MongoDBTest {
    public static void main(String[] args) throws UnknownHostException, MongoException {
        //连接数据库
        Mongo mg = new Mongo("127.0.0.1", 27017);
        //查询所有的Database
        for (String name : mg.getDatabaseNames()) {
            System.out.println("dbName: " + name);
        }
        //连接到 mydb 中
        DB db = mg.getDB("mydb");
        //查询所有的聚集集合
        for (String name : db.getCollectionNames()) {
            System.out.println("collectionName: " + name);
        }
        //获取单一聚合  users 操作 
        DBCollection usersCollection = db.getCollection("users");

        //1.添加
     /* add(usersCollection);
        //2.更改
        updateDB(usersCollection);
        //3.删除
        deleDB(usersCollection);
        //4.分组查询
        searchGroup(usersCollection);*/
        
        //查询
        searchAll(usersCollection);
        mg.close();
    }
    
    public static void searchAll(DBCollection usersCollection){
        //查询操作
        DBCursor cur = usersCollection.find();
        while (cur.hasNext()) {
            System.out.println(cur.next());
        }
        System.out.println("count  :" + cur.count());
        System.out.println("游  标           :" + cur.getCursorId());
        System.out.println("序  列  化     :" + JSON.serialize(cur));
        
    }
    
    public static void add(DBCollection usersCollection){
      //1、添加操作
        //方法a:循环添加
        for (int i = 0; i < 20; i++) {
            int age = i % 5;
            DBObject user = new BasicDBObject();
            user.put("id", i);
            user.put("name", "user"+i);
            user.put("age",age);
            usersCollection.save(user);
        }
        
        //方法b:添加 多条数据,传递Array对象 
        DBObject user = new BasicDBObject();
        user.put("id", 20);
        user.put("name", "user"+20);
        user.put("age",20);
        usersCollection.save(user);
        usersCollection.insert(user, new BasicDBObject("name", "tom2")).getN(); //添加多条数据,传递Array对象 
      
        //方法c:添加List集合
        List<DBObject> list = new ArrayList<DBObject>();
        list.add(user);
        DBObject user2 = new BasicDBObject("name", "lucy");
        user.put("age", 22);
        list.add(user2);
        usersCollection.insert(list);
        
    }
    
    public static void updateDB(DBCollection usersCollection){
        DBObject upUser = new BasicDBObject();
        upUser.put("name", "updateName");
        upUser.put("age", 99);
        upUser.put("sex", "updateSex");
        usersCollection.update(new BasicDBObject("_id", new ObjectId("569f2e8496d7c496764dd0b4")), upUser);
    }
    
    public static void deleDB(DBCollection usersCollection){
        //根据_id 删除
        usersCollection.remove(new BasicDBObject("_id", new ObjectId("569f2e8496d7c496764dd0b5")));
        //直接删除对象
        DBObject upUser = new BasicDBObject();
        upUser.put("name", "updateName");
        upUser.put("age", 99);
        upUser.put("sex", "updateSex");
        usersCollection.remove(upUser);
    }
    
    
    public static void searchGroup(DBCollection usersCollection){
       //使用group 根据年龄,统计 不同年龄的人数
        BasicDBObject key = new BasicDBObject("age",true);  //分组KEY    
        BasicDBObject cond = new BasicDBObject("id",new BasicDBObject(QueryOperators.GT,0));     
        BasicDBObject initial = new BasicDBObject("count",0); //统计字段    
        String reduce = "function (doc,prev){  prev.count++ }";  //计算函数
        BasicDBList group =  (BasicDBList) usersCollection.group(key,cond,initial,reduce);      
        System.out.println("group:"+group);   
    }
}



    










猜你喜欢

转载自blog.csdn.net/ly10265139/article/details/50549166