java操作mongodb

來源:互聯網
上載者:User

標籤:

代碼1:

package com.ooooo.mongo; import java.net.UnknownHostException;import java.util.Set; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.junit.Test; import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.MongoClient;import com.mongodb.MongoException; public class JavaMongoDBTest { /*** Java + MongoDB Hello world Example* */    public static void main(String[] args) {       try {           //執行個體化Mongo對象,串連27017連接埠       MongoClient mongo = new MongoClient("localhost", 27017);                              //串連名為yourdb的資料庫,假如資料庫不存在的話,mongodb會自動建立           DB db = mongo.getDB("ytn-db");           // Get collection from MongoDB, database named "yourDB"//從Mongodb中獲得名為yourColleection的資料集合,如果該資料集合不存在,Mongodb會為其建立立           DBCollection collection = db.getCollection("yourCollection");   // 使用BasicDBObject對象建立一個mongodb的document,並給予賦值。           BasicDBObject document = new BasicDBObject();           document.put("id", 1002);           document.put("msg", "hello world mongoDB in Java---ytan");           document.put("msg23", "hello world mongoDB in Java---yian--002");           document.put("msg23111", "hello world mongoDB in Java---yun--002");            //將建立立的document儲存到collection中去           collection.insert(document);           // 建立要查詢的document           BasicDBObject searchQuery = new BasicDBObject();           searchQuery.put("id", 1002);           // 使用collection的find方法尋找document           DBCursor cursor = collection.find(searchQuery);           //迴圈輸出結果           while (cursor.hasNext()) {           System.out.println(cursor.next());                       }           System.out.println("Done");        } catch (UnknownHostException e) {           e.printStackTrace();       } catch (MongoException e) {           e.printStackTrace();       }   }            @Test   public void testcase01_MongoDB2json() throws Exception {           //執行個體化Mongo對象,串連27017連接埠        MongoClient mongo = new MongoClient("localhost", 27017);                               //串連名為yourdb的資料庫,假如資料庫不存在的話,mongodb會自動建立            for (String s : mongo.getDatabaseNames()) {             System.out.println(s);             }                DB db = mongo.getDB("ynt-db");                                Set<String> collections = db.getCollectionNames();          for(String collectionName:collections){          System.out.println(collectionName);          }                      // Get collection from MongoDB, database named "yourDB"            //從Mongodb中獲得名為yourColleection的資料集合,如果該資料集合不存在,Mongodb會為其建立立            DBCollection collection = db.getCollection("yourCollection");                 BasicDBObject searchQuery = new BasicDBObject();           searchQuery.put("id", 1002);           // 使用collection的find方法尋找document           DBCursor cursor = collection.find(searchQuery);                    JSONObject  dataJson=new JSONObject(String.valueOf(cursor.next()));System.out.println(dataJson);   //JSONObject  response=dataJson.getJSONObject("msg");//JSONArray data=response.getJSONArray("data");//JSONObject info=data.getJSONObject(0);String province=dataJson.getString("msg");String city=dataJson.getString("id");String district=dataJson.getString("_id");System.out.println(province+city+district);     }}

mongodb mongo

使用mongoDB需要匯入以下類,當然不是全部需要,用到的類就匯入。  import com.mongodb.Mongo;  import com.mongodb.DB;  import com.mongodb.DBCollection;  import com.mongodb.BasicDBObject;  import com.mongodb.DBObject;  import com.mongodb.DBCursor;  import com.mongodb.ObjectId;  類轉換  當把一個類對象存到mongoDB後,從mongoDB取出來時使用setObjectClass()將其轉換回原來的類。  public class Tweet implements DBObject {      /* ... */  }  Tweet myTweet = new Tweet();  myTweet.put("user", "bruce");  myTweet.put("message", "fun");  myTweet.put("date", new Date());  collection.insert(myTweet);  //轉換  collection.setObjectClass(Tweet);  Tweet myTweet = (Tweet)collection.findOne();  預設ID  當儲存的對象沒有設定ID時,mongoDB會預設給該條記錄設定一個ID("_id")。  當然你也可以設定自己指定的ID,如:(在mongoDB中執行用db.users.save({_id:1,name:‘bruce‘});)  BasicDBObject bo = new BasicDBObject();  bo.put(‘_id‘, 1);  bo.put(‘name‘, ‘bruce‘);  collection.insert(bo);  許可權  判斷是否有mongoDB的存取權限,有就返回true,否則返回false。  boolean auth = db.authenticate(myUserName, myPassword);  查看mongoDB資料庫列表  Mongo m = new Mongo();  for (String s : m.getDatabaseNames()) {  System.out.println(s);  }  查看當前庫下所有的表名,等於在mongoDB中執行show tables;  Set<String> colls = db.getCollectionNames();  for (String s : colls) {  System.out.println(s);  }  查看一個表的索引  List<DBObject> list = coll.getIndexInfo();  for (DBObject o : list) {  System.out.println(o);  }  刪除一個資料庫  Mongo m = new Mongo();  m.dropDatabase("myDatabaseName");  建立mongoDB的連結  Mongo m = new Mongo("localhost", 27017);  DB db = m.getDB("myDatabaseName"); //相當於庫名  DBCollection coll = db.getCollection("myUsersTable");//相當於表名  #查詢資料  查詢第一條記錄  DBObject firstDoc = coll.findOne();  findOne()返回一個記錄,而find()返回的是DBCursor遊標對象。  查詢全部資料  DBCursor cur = coll.find();  while(cur.hasNext()) {  System.out.println(cur.next());  }  查詢記錄數量  coll.find().count();  coll.find(new BasicDBObject("age", 26)).count();  設定條件查詢  BasicDBObject condition = new BasicDBObject();  condition.put("name", "bruce");  condition.put("age", 26);  coll.find(condition);  查詢部分資料區塊  DBCursor cursor = coll.find().skip(0).limit(10);  while(cursor.hasNext()) {  System.out.println(cursor.next());  }  比較查詢(age > 50)  BasicDBObject condition = new BasicDBObject();  condition.put("age", new BasicDBObject("$gt", 50));  coll.find(condition);  比較符  "$gt": 大於  "$gte":大於等於  "$lt": 小於  "$lte":小於等於  "$in": 包含  //以下條件查詢20<age<=30  condition.put("age", new BasicDBObject("$gt", 20).append("$lte", 30));  #插入資料  批量插入  List datas = new ArrayList();  for (int i=0; i < 100; i++) {  BasicDBObject bo = new BasicDBObject();  bo.put("name", "bruce");  bo.append("age", i);  datas.add(bo);  }  coll.insert(datas);  Regex  查詢所有名字匹配 /joh?n/i 的記錄  Pattern pattern = Pattern.compile("joh?n", CASE_INSENSITIVE);  BasicDBObject query = new BasicDBObject("name", pattern);  DBCursor cursor = coll.find(query);

 

java操作mongodb

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.