原生MongDB在java中相关操作

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

猜你喜欢

转载自blog.csdn.net/lql_h/article/details/88572694