MongoDB驱动
MongoDB连接
public class MongoConn {
private static MongoDatabase mongodatabase ;
static{
MongoClient mongoClient = new MongoClient( "10.238.103.138" , 27017 );
mongodatabase = mongoClient.getDatabase("test");
}
public static MongoDatabase connect(){
return mongodatabase;
}
}
查询一条数据
private static void findone(String itemid){
MongoCollection<Document> aipComponentMongoLogItemcollection = MongoConn.connect().getCollection("aipComponentMongoLogItem");
BasicDBObject cond = new BasicDBObject();
ObjectId id =new ObjectId(itemid) ;
cond.append("_id",id);
Document myDoc = aipComponentMongoLogItemcollection.find(cond).first();
System.out.println(myDoc.get("_id").toString() );
System.out.println(myDoc.getString("inputParam"));
MongoCollection<Document> aipComponentMongoLogItemClobColumncollection = MongoConn.connect().getCollection("aipComponentMongoLogItemClobColumn");
BasicDBObject condClob = new BasicDBObject();
condClob.append("itemid", itemid);
Document myDocClob = aipComponentMongoLogItemClobColumncollection.find(condClob).first();
System.out.println(myDocClob.getString("executeDetailLog"));
System.out.println(myDocClob.getString("output"));
MongoCollection<Document> aipComponentMongoLogcollection = MongoConn.connect().getCollection("aipComponentMongoLog");
BasicDBObject condlog = new BasicDBObject();
condlog.append("batchId", myDoc.getString("batchId"));
Document myDoclog = aipComponentMongoLogcollection.find(condlog).first();
System.out.println(myDoclog.getString("componentCode"));
System.out.println(myDoclog.getString("componentName"));
}
插入一条数据
private static void insertone(){
MongoCollection<Document> logcollection = MongoConn.connect().getCollection("aiplog");
Document document = new Document("title", "MongoDB").
append("description", "database").
append("likes", 700).
append("by", "Fly").
append("createdate", new Date());
logcollection.insertOne(document);
ObjectId id = (ObjectId)document.get( "_id" );
System.out.println(id.toString());
}
更新一条数据(含有内嵌性文档)
private static void updateone(){
MongoCollection<Document> logcollection = MongoConn.connect().getCollection("aiplog");
BasicDBObject cond = new BasicDBObject();
ObjectId id =new ObjectId("5c88666f630f3617b01cc9bb") ;
cond.append("_id",id);
Document myDoc = logcollection.find(cond).first();
myDoc.put("description", "datastore");
//含有内嵌性文档
BasicDBObject doc = new BasicDBObject();
doc.put("uid", "001");
doc.put("uname", "xiaofang1");
myDoc.put("doc", doc);
logcollection.updateOne(Filters.eq("_id", id), new Document("$set", myDoc));
System.out.println("success");
}
查询内嵌性文档
private static void queryone(){
MongoCollection<Document> logcollection = MongoConn.connect().getCollection("aiplog");
BasicDBObject cond = new BasicDBObject();
ObjectId id =new ObjectId("5c88666f630f3617b01cc9bb") ;
cond.append("_id",id);
BasicDBObject field = new BasicDBObject();
field.put("doc", 1);
Document myDoc = logcollection.find(cond).projection(field).first();
System.out.println(myDoc);
Document myDoc1=(Document)myDoc.get("doc");
System.out.println(myDoc1.getString("uid"));
System.out.println(myDoc1.getString("uname"));
}
根据条件、分页、排序 并只显示相关字段的查询
private static void querycollection() {
MongoCollection<Document> logcollection = MongoConn.connect().getCollection("aiplog");
BasicDBObject cond = new BasicDBObject();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
cond.put("createdate", new BasicDBObject("$gte", sdf.parse("2019-03-11")).append("$lte", sdf.parse("2019-03-16")));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BasicDBObject field = new BasicDBObject();
field.put("title", 1);
field.put("description", 1);
field.put("likes", -1);
Document sort = new Document();
sort.put("likes", -1); // 1是正序,-1是倒序
// MongoCursor<Document> cursor = logcollection.find(cond).projection(field).sort(sort).skip(2).limit(2).iterator();
MongoCursor<Document> cursor = logcollection.find(cond).projection(field).sort(sort).iterator();
while(cursor.hasNext()){
Document myDoc = cursor.next();
System.out.println(myDoc.get("_id").toString() );
System.out.println(myDoc.getString("title"));
System.out.println(myDoc.getString("description"));
System.out.println(myDoc.getInteger("likes"));
System.out.println("--------------------------------------");
}
BasicDBObject query =new BasicDBObject();
query.put("description", "database");
System.out.println( logcollection.count(query));
}
数组里追加数据
private static void updateonepush(){
MongoCollection<Document> logcollection = MongoConn.connect().getCollection("aiplog");
BasicDBObject cond = new BasicDBObject();
ObjectId id =new ObjectId("5c88667a630f362010ee58a1") ;
cond.append("_id",id);
BasicDBObject val = new BasicDBObject();
val.append("bwid","22");
val.append("count", 2);
logcollection.updateOne(Filters.eq("_id", id), new Document("$push",new Document("bw",val)));
System.out.println("success");
}
查询含数组的记录
private static void findonepush(){
MongoCollection<Document> logcollection = MongoConn.connect().getCollection("aiplog");
BasicDBObject value2 = new BasicDBObject();
value2.put("bwid", "11");
BasicDBObject dbObj2 = new BasicDBObject("bw",new BasicDBObject("$elemMatch", value2));
MongoCursor<Document> cursor1 =logcollection.find(dbObj2).iterator();
while(cursor1.hasNext()){
Document sd=cursor1.next();
System.out.println(sd.toJson());
}