java操做mongodb數據庫

1)、 創建MongoDBTest.java,完成簡單的mongoDB數據庫操做java

Mongo mongo = new Mongo('127.0.0.1', 27017);mongodb

Mongo mongo = new Mongo();數據庫

這樣就建立了一個MongoDB的數據庫鏈接對象,它默認鏈接到當前機器的localhost地址,端口是27017。code

2)、鏈接數據庫test對象

DB db = mongo.getDB(「test」);排序

這樣就得到了一個test的數據庫,若是mongoDB中沒有建立這個數據庫,mongoDB會自動建立當前數據庫。ip

獲得了db,下一步咱們要獲取一個「彙集集合DBCollection」,經過db對象的getCollection方法來完成。rem

DBCollection users = db.getCollection("users");get

這樣就得到了一個DBCollection,它至關於咱們數據庫的「表」。it

3)、接下來就能夠進行增刪改查操做

MongoURI uri = new MongoURI("mongodb://localhost:27017");
    String databaseName ="myDatabase";
    String collectionName = "mycollections";
    
    Mongo mongo = null;
    DB db = null;
    DBCollection userCollection;
    try {
        定義Mongo服務
        mongo =new Mongo("localhost", 27017);
        mongo = new Mongo(uri);
        
        
       mongo = new Mongo();
       DBAddress addr = new DBAddress("localhost", 27017,databaseName);
        mongo.connect(addr);
        
        刪除數據庫
        mongo.dropDatabase(databaseName);

       獲取databaseName對應的數據庫,不存在則自動建立
        db = mongo.getDB(databaseName);
        
        添加用戶
        db.addUser("admin", new char []{'a','d','m','i','n'});
        
        移除用戶
        db.removeUser("admin");
        
        驗證權限
        boolean flag = db.authenticate("admin", new char []{'a','d','m','i','n'} );
       
        if(flag == false){
            return;
        }
        
        設置db爲只讀 ,只讀就不能寫入數據了   對save管用,對insert好像無論用
       db.setReadOnly(true);


        
        獲取collectionName對應的集合,不存在則自動建立
        db.createCollection("mycollection", new BasicDBObject());
        userCollection = db.getCollection(collectionName);
        
        
        查詢全部的DataBase
        for(String dbName : mongo.getDatabaseNames()){
            System.out.println("databasename:" + dbName);
        }
        
      
        查詢全部的彙集集合
        for(String collection :db.getCollectionNames()){
            System.out.println("collectionName:" + collection);
        }
        
        
        查詢是否存在collectionName集合
        if(db.collectionExists(collectionName)){
          //去掉重複的數據
           List dislist = userCollection.distinct("userId");
           int len = dislist.size();
         for(int i = 0 ; i< len ; i++){
               System.out.println(dislist.get(i));
           }
            
            查詢
            System.out.println(userCollection.find(new BasicDBObject("userId",1)).toArray());
            
            返回前2個
            System.out.println(userCollection.find({},{reviews:{slice:2}});                                  //System.out.println("分頁:"+userCollection.find(new BasicDBObject("",new BasicDBObject("slice", 2))).toArray());
            
            查詢全部的數據
            DB遊標
            DBCursor cursor = userCollection.find();
            while(cursor.hasNext()){
                DBObject userDbobj = cursor.next();             System.out.println("userId:"+userDbobj.get("userId")+";age:"+userDbobj.get("age")+";sex:"+userDbobj.get("sex")+";address:"+userDbobj.get("address"));
            }
            
            
            條件查詢
            查詢age 等於 24
            System.out.println("find age = 24: " + userCollection.find(new BasicDBObject("age", 24)).toArray());

            
            查詢age 大於等於 24
            System.out.println("find age >= 24: " + userCollection.find(new BasicDBObject("age", new BasicDBObject("gte",24))).toArray());               

            查詢age小於等於24            System.out.println("findage<=24:"+userCollection.find(newBasicDBObject("age",newBasicDBObject("lte", 24))).toArray());

            
            查詢age 不等於25
            System.out.println("查詢age!=25:" + userCollection.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray());

            查詢某個範圍的數據
            System.out.println("查詢age in 25/26/27:" + userCollection.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[] { 25, 26, 27 }))).toArray());

            查詢不在某個範圍數據
            System.out.println("查詢age not in 25/26/27:" + userCollection.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[] { 25, 26, 27 }))).toArray());
           
            按age排序
            System.out.println("查詢age exists 排序:" + userCollection.find().sort(new BasicDBObject("age",new BasicDBObject(QueryOperators.ORDER_BY, 1))).limit(2).skip(1).toArray());   //(new BasicDBObject("age", new BasicDBObject(QueryOperators.ORDER_BY, 1))).toArray());

            new BasicDBObject();

            System.out.println("只查詢age屬性:" + userCollection.find(null, new BasicDBObject("age", true)).toArray());

            System.out.println("只查屬性:" + userCollection.find(null, new BasicDBObject("age", true), 0, 2).toArray());

            System.out.println("只查屬性:" + userCollection.find(null, new BasicDBObject("age", true), 0, 2, Bytes.QUERYOPTION_NOTIMEOUT).toArray());
        }
        

        添加數據
        DBObject user = new BasicDBObject();
        user.put("userId", 2);
        user.put("userName", "tom");
        user.put("age", 21);
        user.put("sex", "male");
        user.put("address", "北京海淀");
        
        userCollection.save(user);
        
        getN  對save和insert無論用
       WriteResult saveResult = userCollection.save(user);
       System.out.println(saveResult.getN());
       System.out.println(saveResult.isLazy());
      if(saveResult.getN() > 0){
           System.out.println("添加成功");
       }
        
        
        添加List集合
       List<DBObject> list = new ArrayList<DBObject>();
       list.add(user);
        DBObject user2 = new BasicDBObject();
       user2.put("userId", 2);
      user2.put("userName", "lily");
       user2.put("age", 20);
       user2.put("sex", "female");
       user2.put("address", "新加坡");
       list.add(user2);
      
       userCollection.insert(list);
        看是否插入成功
        System.out.println("集合中數據量:" + userCollection.count());
        
        
        
        刪除數據
       WriteResult wr = userCollection.remove(new BasicDBObject("userId",1));
       System.out.println(wr.getN());
       System.out.println(wr.isLazy());
       if(wr.getN() > 0){
           System.out.println("刪除成功!");
     }
        
        
        刪除整個集合
        userCollection.drop();
        
        
        修改
        DBObject newUser =new  BasicDBObject();
        newUser.put("userId", 3);
        newUser.put("userName", "tomAndKitty");
        newUser.put("age", 25);
        user.put("sex", "male");
        user.put("address", "北京朝陽");
        

      WriteResult updateResult = userCollection.update(new BasicDBObject("userId",1),newUser);
      WriteResult updateResult = userCollection.update(new BasicDBObject("userId",3),newUser,

        關閉Mongo服務
        if(mongo != null){
            mongo.close();
        }
        db = null;
        userCollection = null;
    }
}
相關文章
相關標籤/搜索