MongoDB API - 简单的示例小程序

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。