欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java学习,

来源: javaer 分享于  点击 39568 次 点评:186

Java学习,


java驱动程序是Mongodb中的驱动程序之一,也是比较成熟的Mongodb驱动程序之一,下面介绍了使用java连接、操作Mongodb。

一、安装java驱动程序

Mongodb的java驱动程序是一个jar包,可以在:

https://github.com/mongodb/mongo-java-driver/downloads

下载的jar导入到eclipse的项目中即可。

二、java操作Mongodb

java操作Mongodb常用的几个类:

Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等。

DB:对应一个数据库,可以用来建立集合等操作。

DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等。

DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,是key-value的数据结构,用起来和HashMap是基本一致的。

DBCursor:用来遍历取得的数据,实现了Iterable和Iterator。

private static void mongodbOperating() {
	try {
		// 有多种构造方法,选择一种(IP、port)
		Mongo m = new Mongo("192.168.21.111", 27017);
		// 选择数据库,如果没有这个数据库的话,会自动建立
		DB db = m.getDB("mydb");
		// 建立一个集合,和数据库一样,如果没有,会自动建立
		DBCollection collection = db.getCollection("myCollectionTest");

		BasicDBObject doc = new BasicDBObject();
		doc.put("name", "MongoDB");
		doc.put("type", "database");
		doc.put("count", 1);
		BasicDBObject info = new BasicDBObject();
		info.put("x", 203);
		info.put("y", 102);
		doc.put("info", info);

		// 插入一条数据,数据如下
		/*
		 * { "name" : "MongoDB", "type" : "database", "count" : 1, "info" :
		 * { x : 203, y : 102 } }
		 */
		// 可以循环插入多条数据
		collection.insert(doc);
		// 查找第一条数据,显示如下,_id是系统自动帮加上的,全局唯一
		/*
		 * { "_id" : "49902cde5162504500b45c2c" , "name" : "MongoDB" ,
		 * "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" :
		 * 102}}
		 */
		DBObject myDoc = collection.findOne();
		System.out.println(myDoc);

		// 插入多条数据
		for (int i = 0; i < 100; i++) {
			collection.insert(new BasicDBObject().append("i", i));
		}
		// 获取文档条数
		System.out.println(collection.getCount());
		// 使用Cursor 获取所有文档
		DBCursor cursor = collection.find();
		try {
			while (cursor.hasNext()) {
				System.out.println(cursor.next());
			}
		} finally {
			cursor.close();
		}

		// 查找操作,获取单条记录
		// { "_id" : "49903677516250c1008d624e" , "i" : 71 }
		BasicDBObject query = new BasicDBObject();
		query.put("i", 71);
		cursor = collection.find(query);
		try {
			while (cursor.hasNext()) {
				System.out.println(cursor.next());
			}
		} finally {
			cursor.close();
		}

		// 查找 i>50的项
		query = new BasicDBObject();
		query.put("i", new BasicDBObject("$gt", 50)); // e.g. find all where
														// i > 50
		cursor = collection.find(query);
		try {
			while (cursor.hasNext()) {
				System.out.println(cursor.next());
			}
		} finally {
			cursor.close();
		}

		// 查找 20<i<=30
		query = new BasicDBObject();
		// i.e.   20 < i <= 30
		query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30)); 
		
		cursor = collection.find(query);
		try {
			while (cursor.hasNext()) {
				System.out.println(cursor.next());
			}
		} finally {
			cursor.close();
		}

		// 修改 i=71的一项
		query = new BasicDBObject();
		query.put("i", 71);
		BasicDBObject update = new BasicDBObject();
		update.put("i", 710);
		DBObject dbobj = collection.findAndModify(query, update);
		System.out.println(dbobj);

		// 修改 i=72的一项
		query = new BasicDBObject();
		query.put("i", 72);
		update = new BasicDBObject();
		update.put("i", 720);
		WriteResult result = collection.update(query, update);
		System.out.println(result);

		// 删除i=61的项
		query = new BasicDBObject();
		query.put("i", 61);
		collection.findAndRemove(query);
		// 删除i=62的项
		BasicDBObject remove = new BasicDBObject();
		remove.put("i", 62);
		collection.remove(remove);

		// 创建索引 1为升序、-1为降序 create index on "i", ascending
		collection.createIndex(new BasicDBObject("i", 1));
		// 获取索引列表
		List<DBObject> list = collection.getIndexInfo();
		for (DBObject o : list) {
			System.out.println(o);
		}

		// 获取数据库列表
		for (String s : m.getDatabaseNames()) {
			System.out.println(s);
		}
		// 获取集合列表
		Set<String> colls = db.getCollectionNames();
		for (String s : colls) {
			System.out.println(s);
		}

		// 删除数据库
		// m.dropDatabase("my_new_db");

	} catch (UnknownHostException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
转自:http://www.mongodb.org/display/DOCS/Java+Tutorial

相关文章

    暂无相关文章
相关栏目:

用户点评