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