2017-05-05 73 views
0

我想檢索一樣,如果我給2017年2月1日0時05分46秒前兩個字符值,我應該得到類似結果MongoDB的Java驅動程序取回前兩個字符

02-01-2017 00:05:46 
02-01-2017 00:05:46 
02-01-2017 00:05:46 

沒有串SyTime_000_09_00:00

我使用jongo庫和蒙戈驅動3.4.2

{ 
    "_id" : ObjectId("590b70c609200535e85c6540"), 
    "Data" : "02-01-2017 00:05:46 SyTime_000_09_00:00 " 
} 
{ 
    "_id" : ObjectId("590b70c609200535e85c6541"), 
    "Data" : "02-01-2017 00:05:46 DPMPow_P01_04_ 45.53 " 
} 

這是我曾嘗試

public class DataSource { 
    private MongoCollection collection; 

    public void DataSource() { 
    this.collection = (new Jongo(new 
     MongoClient("localhost", 27017).getDB("admin"))).getCollection("test"); 
    } 

    public void guarder(Object obj) { 
    this.collection.save(obj); 
    } 

    public Iterable consol() { 
    DBObject query = new BasicDBObject(); 

    Pattern regex = Pattern.compile("02-01-2017"); 
    query.put("Data", regex); 
    return (Iterable) this.collection.find(query.toString()).as(pojo.class); 
    } 
} 

這裏是POJO類

public class pojo { 
    @MongoObjectId 
    String _id;   
    String Data; 


    public pojo() { 

    } 

    public pojo(String Data) { 
    this.Data = Data; 
    } 


    public String getData() { 
    return Data; 
    } 


    public String getId() { 
    return _id; 
    } 

}

我使用JFrame的按鈕操作GUI

 private void findActionPerformed(java.awt.event.ActionEvent evt) {           

    try{ 

    DefaultListModel listModel = new DefaultListModel(); 
    DataSource ds=new DataSource(); 
    ds.DataSource(); 

     Iterable pojo=ds.consol(); 
     pojo p; 
     int i=0; 
     for (Iterator it=pojo.iterator();it.hasNext();){ 
     p = (pojo)it.next(); 
     listModel.addElement(p.getData()); 

     } 
     mdata.setModel(listModel); //jlist 

    }catch(Exception e){ 
     System.out.println(e); 

    } 
} 

結果

Result

+0

基於此示例,您希望檢索第一個空格之前的字符串。它是否正確? –

+0

如果你使用'Pattern.compile(「02-01-2017 [0-9:] +」);'?我猜這會返回所有*條目*,並且只需要匹配,對吧? –

+0

我想只在我的Jlist中顯示結果「02-01-2017 00:05:46」沒有字符串現在我得到了像我這樣的結果「02-01-2017 00:05:46 SyTime_000_09_00:00」你也可以看看結果圖像,我想在它到達Jlist之前進行修剪。 @WiktorStribiżew –

回答

0

正如WiktorStribiżew所述

p.getData()返回一個被添加到listModel的字符串。使用p.getData()。replaceFirst(「^(\ S + \ s \ S +)。*」,「$ 1」)