標籤:style os io 使用 java ar for 資料 cti
閱讀群體:對MOngoDB 尚且不夠熟悉的初學者。
Plus: 由於本ID是第一次使用MongoDB,如出現理解的偏差,還請指出。
1 些概念:
一個MongoDB服務可以建立多個資料庫,每一個資料庫可以有多張表,通常而言,我們的資料庫的表的名字叫
Collection,每一個Collection可以存放多個Document,每一個文檔都以BSON(binary)的形式存放在硬碟之中,
因此可以存放比較複雜的形式存放在硬碟之中,因此可以存放比較複雜的對象,它是以文檔的形式進行儲存的。你可以給
任何的一個文檔或者一批文檔新增或則刪除欄位,而不會對其他的文檔造成影響。這就是Schema-free, 和一般的Key -
value 資料庫如下,這也是文檔型資料庫的主要優點,
跟一般的key-value資料庫不一樣的是,它的value中儲存了結構資訊,所以你又可以像關係型資料庫那樣對某些域進行讀寫、統計等操作。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。Mongo還可以解決海量資料的查詢效率,根據官方文檔,當資料量達到50GB以上資料時,Mongo資料庫訪問速度是MySQL10 倍以上。
BSON 是binay json的縮寫,BSON 有以下的三個特點:
1 輕量
2 誇平台
3 高效
命名空間: MongoDB 村粗BSON對象到COllections,這一系列的資料庫名,和Colelctions被
成為一個命名空間。
一個小程式:
package test;import java.net.UnknownHostException;import java.util.ArrayList;import java.util.List;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.esotericsoftware.minlog.Log;import com.mixbox.mongodb.impl.MongoDBUtil;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.Mongo;import com.mongodb.ServerAddress;public class testIpChecker {public static final Logger LOG = LoggerFactory.getLogger(MongoDBUtil.class);// mongodb地址static ServerAddress address = null;// 叢集地址集static List<ServerAddress> list = new ArrayList<ServerAddress>();// mongo對象static Mongo m = null;// 資料庫物件static DB db = null;static {try {address = new ServerAddress("192.168.50.25", 30000);} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();}list.add(address);m = new Mongo(list);db = m.getDB("shoptest");}public static void main(String[] args) throws Exception {MongoDBUtil mongoutil = new MongoDBUtil();int needInc = mongoutil.checkHasIp("192.168.50.165");// for (int i = 0; i < 100; i++) {// insertIntoMongo("192.168.50.165");//// }isNeed(needInc);}public static void p(Object o) {System.err.println(o.toString());}public static void isNeed(int needInc) {if (needInc == 1) {p("需要增加,庫裡面沒有");} else {p("不需要,庫裡有了");}}public static void insertIntoMongo(String dimensionip) {DBCollection collection = db.getCollection("dimensionipbase");// 擷取表的控制代碼// 封裝查詢條件BasicDBObject basicDBObject = null;BasicDBObject newdbobject = new BasicDBObject();newdbobject.put("dimensionip", dimensionip);collection.insert(newdbobject);}}
BasicDBobject 事實也對應著 Document對象。 利用BasicDBObject去管理。
MongoDB API - 簡單的樣本小程式