##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);
}
}