Java 操作 MongoDB

MongoDB 使用json存储数据.

package com.ys;

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

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

/**
 * @author yansheng
 *
 */
public class HelloMongo {
	public static void main(String[] args) throws UnknownHostException,
			MongoException {
		// 1.连接Mongo
		Mongo conn = new Mongo("localhost");
		// Mongo conn = new Mongo("localhost", 27017);
		// Mongo conn = new Mongo("localhost", "mydb");
		// Mongo conn = new Mongo("localhost", 27017, "mydb");

		// 2.遍历数据库
		List<String> dbList = conn.getDatabaseNames();
		for (String s : dbList) {
			System.out.println(s);
		}
		// 3.获得db,遍历集合列表
		DB db = conn.getDB("admin");
		Set<String> colls = db.getCollectionNames();
		for (String s : colls) {
			System.out.println(s);
		}
		
		// 登录db
		boolean auth = db.authenticate("user", "password".toCharArray());

		// 4.获得一个集合,如果COLLECTION不存在,则MongoDB会自动为你创建此collection  
		DBCollection coll = db.getCollection("testCollection");

		// 5.插入数据
		BasicDBObject doc = new BasicDBObject();
		doc.put("name", "MongoDB");
		doc.put("type", "database");
		doc.put("count", 1);

		DBObject info = new BasicDBObject();
		info.put("x", 203);
		info.put("y", 102);
		doc.put("info", info);
		coll.insert(doc);

		// 6.使用findOne()查找集合中第一个文档
		/*
		 * 注意_id和_ns元素是由MongoDB自动加入你的文档。 记住:MongoDB内部存储使用的元素名是以“_”做为开始。
		 */
		DBObject myDoc = coll.findOne();
		System.out.println(myDoc);

		// 7.统计文档数量
		System.out.println(coll.getCount());

		// 8.使用光标(cursor)来获取全部文档
		DBCursor cur = coll.find();
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}

		// 9.在查询中获取单一文档
		BasicDBObject query = new BasicDBObject();
		query.put("i", 71);
		cur = coll.find(query);
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}

		// 10.使用条件查询获取集合
		// 例如,我们想要查询所有i>50的文档:
		BasicDBObject query_1 = new BasicDBObject();
		query_1.put("i", new BasicDBObject("$gt", 50));
		cur = coll.find(query_1);
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}
		// 做20 < i <= 30的查询
		BasicDBObject query_2 = new BasicDBObject();
		query_2.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));
		cur = coll.find(query_2);
		while (cur.hasNext()) {
			System.out.println(cur.next());
		}
		// 11.创建索引,指定升序(1)或降序(-1)
		coll.createIndex(new BasicDBObject("i", 1));

		// 12.获取索引列表
		List<DBObject> list = coll.getIndexInfo();
		for (DBObject o : list) {
			System.out.println(o);
		}
		// 13.MongoDB管理函数
		// 例A:获取数据库列表
		// MongoAdmin admin = new MongoAdmin();
		// for(String s : admin.getDatabaseNames()){
		// System.out.println(s);
		// }
		//
		// 例B:获取数据库对象
		// Mongo m = admin.getDB("mydb");
		//
		// 例C:删除数据库
		// admin.dropDatabase("mydb");
		
		//13.用DBObject存储JAVA对象
		// 例如,存在一个需要存储的对象类Tweet
		Tweet myTweet_1 = new Tweet();
		myTweet_1.put("user", 001);
		myTweet_1.put("message", "message");
		myTweet_1.put("date", new Date());

		coll.insert(myTweet_1);
		
		// 当一个文档从MongoDB中取出时,它会自动把文档转换成DBObject接口类型,要将它实例化为你的对象
		coll.setObjectClass(Tweet.class);
		Tweet myTweet_2 = (Tweet)coll.findOne();
		
		// 14.JAVA驱动的并发性
		db.requestStart();
		// code.........
		db.requestDone();
	}
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值