阅读群体:对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 block e.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去管理。