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; } }