MongoDB入门列子及原理介绍

openkk 12年前
     <p>本文着重介绍<a href="http://www.open-open.com/lib/view/open1322699343952.html" target="_blank">mongonDB</a>的原理及安装,最后送大家一个简单的列子,有可以运行的列子和原理,相信大家很容易学会mongonDB ^_^</p>    <p>MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。意在为WEB应用提供可扩展的高性能数据存储解决方案。</p>    <p>它有一下几个特点:</p>    <p> 1.模式自由。 ( 像json数据一样可以自由的宽展) </p>    <p> 2.支持动态查询。 </p>    <p> 3.支持完全索引,包含内部对象。 </p>    <p> 4.支持查询。 </p>    <p> 5.支持复制和故障恢复。 </p>    <p> 6.使用高效的二进制数据存储,包括大型对象(如视频等)。 </p>    <p> 7.自动处理碎片,以支持云计算层次的扩展性。 </p>    <p> 8.支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 </p>    <p> 9.文件存储格式为BSON(一种JSON的扩展)。 </p>    <p> 10.可通过网络访问。(和大多数据数据库一样)</p>    <p>下面是个简单的增加和查找的列子,还是那句话不为别的只为读者一最快的速度了解mongonDB</p>    <pre class="brush:java; toolbar: true; auto-links: false;">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>    <p></p>    <p>下载官方的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(<span style="color:#ff0000;">必须建立F:\job\db\data文件夹,文件夹名字可以随意不过路径不能有中文</span>)敲回车mongod启动成功</p>    <p>运行java文件可以看到一下结果:</p>    <p>{ "_id" : { "$oid" : "4ed9cc01ffbf19d82ed3102b"} , "id" : 1 , "name" : "student1"}<br /> { "_id" : { "$oid" : "4ed9cc01ffbf19d82ed3102c"} , "id" : 1 , "name" : "student1"}<br /> { "_id" : { "$oid" : "4ed9cc19ffbf45716606bfb8"} , "id" : 1 , "name" : "teacher1"}<br /> { "_id" : { "$oid" : "4ed9cc92ffbf98ec2a4b8e36"} , "id" : 1 , "name" : "teacher1"}</p>    <p>每运行一次记录增加一条,呵呵,恭喜你你的mongodb第一个小程序运行成功</p>    <p></p> 转自:    <a href="/misc/goto?guid=4959498286999826828" target="_blank">http://xuehanxin.iteye.com/blog/1290563</a>