mongo java调用示例

##mongo java调用示例

package test;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Sorts;
import com.mongodb.client.MongoCollection;

import org.apache.log4j.Logger;
import org.bson.Document;
import org.bson.conversions.Bson;

import java.util.Date;

import com.mongodb.Block;

import com.mongodb.client.MongoCursor;
import static com.mongodb.client.model.Filters.*;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class MongoDemo {

	private static Logger logger = Logger.getLogger(MongoDemo.class);
	private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

	public static void main(String args[]) {
		MongoClientURI connectionString = new MongoClientURI("mongodb://user_name:user_password@127.0.0.1:30000/test");
		MongoClient mongoClient = new MongoClient(connectionString);
		MongoDatabase database = mongoClient.getDatabase("test");
		MongoCollection<Document> collection = database.getCollection("mycollection");

		// 按条件查找
		findByCondiction(collection);

		// 按时间查找
		findByTime(collection);

		// like 检索
		findByRegex(collection);
		// 关闭
		mongoClient.close();

	}

	/**
	 * 正则表达式查找
	 * 
	 * @param collection
	 */
	private static void findByRegex(MongoCollection<Document> collection) {
		Document myDoc;
		logger.info("正则表达式查找,打印第一条:");
		Bson filter = regex("MPIID", "123");
		logger.info("filters:" + filter.toString());

		myDoc = collection.find(filter).first();
		logger.info(myDoc.toJson());
	}

	/**
	 * 按日期查找
	 * 
	 * @param collection
	 */
	public static void findByTime(MongoCollection<Document> collection) {
		Document myDoc;
		logger.info("按条件查找,打印第一条:");
		try {
			myDoc = collection.find(eq("BIRTHDAY", sdf.parse("1965-06-14"))).first();
			logger.info(myDoc.toJson());
		} catch (ParseException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 条件查找
	 * 
	 * @param coll
	 */
	public static void findByCondiction(MongoCollection<Document> coll) {
		Document myDoc;
		logger.info("按条件查找,打印第一条:");
		myDoc = coll.find(eq("SEXCODE", "1")).first();
		logger.info(myDoc.toJson());

		logger.info("按条件查找,打印全部记录:");
		Block<Document> printBlock = new Block<Document>() {
			public void apply(final Document document) {
				logger.info(document.toJson());
			}
		};
		coll.find(eq("SEXCODE", "2")).limit(5).forEach(printBlock);

		logger.info("遍历全部记录:");
		MongoCursor<Document> cursor = coll.find().limit(5).iterator();
		try {
			while (cursor.hasNext()) {
				logger.info(cursor.next().toJson());
			}
		} finally {
			cursor.close();
		}

		logger.info("按条件查找,分页返回结果:从第2条开始,返回2条结果");
		Bson sort = Sorts.ascending("MPIID");
		coll.find(eq("SEXCODE", "2")).sort(sort).skip(1).limit(2).forEach(printBlock);

		logger.info("日期数据转换:");
		myDoc = coll.find(eq("MPIID", "01b6845a226147da8a0c13af42154d21")).first();
		logger.info(myDoc.toJson());
		Date birthday = myDoc.getDate("BIRTHDAY");
		logger.info("BIRTHDAY:" + sdf.format(birthday));

		logger.info("指定返回列 projection:");
		Bson rtnCols = new Document("MPIID", 1).append("PERSONNAME", 1).append("IDCARD", 1).append("_id", 0);
		coll.find(eq("SEXCODE", "2")).limit(5).projection(rtnCols).sort(sort).skip(1).limit(2).forEach(printBlock);

	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值