MongoDB入門列子及原理介紹

openkk 13年前發布 | 67K 次閱讀 MongoDB NoSQL數據庫 NOSQL

本文著重介紹mongonDB的原理及安裝,最后送大家一個簡單的列子,有可以運行的列子和原理,相信大家很容易學會mongonDB ^_^

MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。意在為WEB應用提供可擴展的高性能數據存儲解決方案。

它有一下幾個特點:

1.模式自由。 ( 像json數據一樣可以自由的寬展) 

2.支持動態查詢。

3.支持完全索引,包含內部對象。

4.支持查詢。

5.支持復制和故障恢復。

6.使用高效的二進制數據存儲,包括大型對象(如視頻等)。

7.自動處理碎片,以支持云計算層次的擴展性。

8.支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

9.文件存儲格式為BSON(一種JSON的擴展)。

10.可通過網絡訪問。(和大多數據數據庫一樣)

下面是個簡單的增加和查找的列子,還是那句話不為別的只為讀者一最快的速度了解mongonDB

package com;

import java.net.UnknownHostException;

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;

/* @className:MogonDBDemo.java

  • @classDescription:
  • @author:jiangmianyue
  • @createTime:2011-12-3 */ public class MogonDBDemo {

    /**

    • @MethodDescription: one simple example for mogondb
    • @author:jiangmianyue
    • @createTime:2011-12-3 */ public static Mongo mongo=null; // Mongo對象 public static DB database=null; // MongonDB的數據庫對象 public static DBCollection collection = null; // 類似于關系數據庫的表 // 靜態語句塊,當與類同事加載,可以一個防止頻繁初始化 static{ try { /**
      • 初始化mogondb對象如果是本機Mongo()是個無參數的構造函數,如果是其他網絡上的Mongo寫成
      • Mongo("http://233.23.11.8:端口號/數據庫")的形式 */ mongo = new Mongo(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } // 獲取一個叫xuehanDB的數據庫,若沒有此數據庫就會新建一個 database = mongo.getDB("xuehanDB"); // 獲取一個teacher集合沒有新建一個 collection = database.getCollection("people"); } public static void main(String[] args) { Teacher t1 = new Teacher(); t1.setId(1); t1.setName("teacher1"); insertOne(t1); query(); } // 增加一個對象 public static void insertOne(Teacher teacher){ BasicDBObject baseObject = new BasicDBObject(); baseObject.put("id", teacher.getId()); baseObject.put("name", teacher.getName()); collection.insert(baseObject); } // 為對應Id的老師增加學生,例如給Id為1的老師增加學生 // 查詢出所有的teacher并打印出來 public static void query(){ DBCursor cur = collection.find(); while (cur.hasNext()) { System.out.println(cur.next()); } }

} // 新建一個teacher對象 class Teacher{ private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }

}

</pre>

下載官方的MongoDB數據庫解壓到F:\job\db "cmd"進入dos界面,進入到mongonDB的bin目F:\job\db\mongodb-win32-i386-2.0.2-rc1\bin>敲入命令mongod.exe --dbpath F:\job\db\data(必須建立F:\job\db\data文件夾,文件夾名字可以隨意不過路徑不能有中文)敲回車mongod啟動成功

運行java文件可以看到一下結果:

{ "_id" : { "$oid" : "4ed9cc01ffbf19d82ed3102b"} , "id" : 1 , "name" : "student1"}
{ "_id" : { "$oid" : "4ed9cc01ffbf19d82ed3102c"} , "id" : 1 , "name" : "student1"}
{ "_id" : { "$oid" : "4ed9cc19ffbf45716606bfb8"} , "id" : 1 , "name" : "teacher1"}
{ "_id" : { "$oid" : "4ed9cc92ffbf98ec2a4b8e36"} , "id" : 1 , "name" : "teacher1"}

每運行一次記錄增加一條,呵呵,恭喜你你的mongodb第一個小程序運行成功

轉自: http://xuehanxin.iteye.com/blog/1290563

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!