Java操作MongoDB学习笔记

一、初试Java对MongoDB的CRUD操作

进入官网
https://github.com/mongodb/mongo-java-driver/downloads
下载mongo.jar(当前最新版mongo-2.7.3.jar)

将mongo-2.7.3.jar拷到项目的lib文件夹

新建TestMongoDB.java,内容如下:

package me.gevin.test;

import java.net.UnknownHostException;
import java.util.Set;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

public class TestMongoDB {

	/**
	 * Java对MongoDB的CRUD操作
	 *
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Mongo mongo = new Mongo();

			System.out.println("connect " + mongo.toString());

			DB db = mongo.getDB("userinfo");

			System.out.println("get db " + db.toString());

			System.out.println("列出userinfo中的所有集合");
			Set<String> colls = db.getCollectionNames();
			for (String coll : colls) {
				System.out.println(coll);
			}

			// 获取指定的集合
			DBCollection collection = db.getCollection("userinfo");

			// 新建文档,并插入集体userinfo
			BasicDBObject doc = new BasicDBObject();
			doc.put("userName", "gevin");
			doc.put("blogUrl", "http://gevin.me/");
			collection.insert(doc);

			BasicDBObject doc2 = new BasicDBObject();
			doc2.put("userName", "google");
			doc2.put("blogUrl", "http://google.com/");
			collection.insert(doc2);

			System.out.println("列出插入后的所有文档");
			DBCursor cursor = collection.find();
			while(cursor.hasNext()) {
				System.out.println(cursor.next());
			}

			// 根据条件查询
			BasicDBObject queryObj = new BasicDBObject();
			queryObj.put("userName", "gevin");
			DBCursor cursor2 = collection.find(queryObj);
			System.out.println("查询userName为gevin的所有文档");
			while(cursor2.hasNext()) {
				System.out.println(cursor2.next());
			}

			// 更新文档
			BasicDBObject newObj = new BasicDBObject();
			newObj.put("userName", "gevin");
			newObj.put("blogUrl", "http://www.gevin.me/");
			newObj.put("city", "guangzhou");

			System.out.println("开始更新userName为gevin的所有文档");

			// 定义一个userName为gevin的对象,作为更新的查询条件
			BasicDBObject updateObj = new BasicDBObject("userName", "gevin");
			collection.update(updateObj, newObj);

			System.out.println("列出更新后的所有文档,注意blogUrl已更新为带www,同时增加了key为city的数据");
			DBCursor cursor3 = collection.find();
			while (cursor3.hasNext()) {
				System.out.println(cursor3.next());
			}

			System.out.println("开始删除userName为gevin的所有文档");
			collection.remove(new BasicDBObject("userName", "gevin"));

			System.out.println("列出删除后的所有文档,已不见gevin的记录了");
			DBCursor cursor4 = collection.find();
			while (cursor4.hasNext()) {
				System.out.println(cursor4.next());
			}

		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}

	}
}

执行结果:

connect Mongo: 127.0.0.1:27017
get db userinfo
列出userinfo中的所有集合
system.indexes
userinfo
列出插入后的所有文档
{ "_id" : { "$oid" : "4f3517289792cbedb300cfbd"} , "userName" : "gevin" , "blogUrl" : "http://gevin.me/"}
{ "_id" : { "$oid" : "4f3517289792cbedb300cfbe"} , "userName" : "google" , "blogUrl" : "http://google.com/"}
查询userName为gevin的所有文档
{ "_id" : { "$oid" : "4f3517289792cbedb300cfbd"} , "userName" : "gevin" , "blogUrl" : "http://gevin.me/"}
开始更新userName为gevin的所有文档
列出更新后的所有文档,注意blogUrl已更新为带www,同时增加了key为city的数据
{ "_id" : { "$oid" : "4f3517289792cbedb300cfbe"} , "userName" : "google" , "blogUrl" : "http://google.com/"}
{ "_id" : { "$oid" : "4f3517289792cbedb300cfbd"} , "userName" : "gevin" , "blogUrl" : "http://www.gevin.me/" , "city" : "guangzhou"}
开始删除userName为gevin的所有文档
列出删除后的所有文档,已不见gevin的记录了
{ "_id" : { "$oid" : "4f3517289792cbedb300cfbe"} , "userName" : "google" , "blogUrl" : "http://google.com/"}

本文固定链接: http://gevin.me/253.html | Gevin's Blog

该日志由 admin 于2012年02月10日发表在 Database, Java 分类下, 通告目前不可用,你可以至底部留下评论。
原创文章转载请注明: Java操作MongoDB学习笔记 | Gevin's Blog
关键字: ,

Java操作MongoDB学习笔记:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter