2016-04-28 69 views
2

例如,我將這兩個JSON文件插入到mongo DB java驅動程序3.0.4中。 我正在嘗試根據字段ID獲取詳細信息。但是我所有的努力都是徒勞的。任何人都可以告訴我弄亂了什麼。在此先感謝在mongodb java驅動程序3.0.x中查找JSON值

Document { 
    _id = 5721dd81ef31f82754eac196, 
    Details = { 
     "author_FirstName" : "Nishant", 
     "author_LastName" : "Jayanth", 
     "book_title" : "skjfsasfhkj", 
     "Id" : 78, 
     "publisher" : "tata", 
     "year" : 1231, 
     "ISBN" : 291939 
    } 

} 

Document { 
    _id = 5721dd81ef31f82754eac196, 
    Details = { 
     "author_FirstName" : "Nishant", 
     "author_LastName" : "Jayanth", 
     "book_title" : "skjfsasfhkj", 
     "Id" : 777, 
     "publisher" : "tata", 
     "year" : 1231, 
     "ISBN" : 291939 
    } 

} 

這是我的代碼,我試圖根據ID檢索。

public String getAuthor(String id){ 
    String pId=String.valueOf(id); 
    final String[] author = {null}; 
    FindIterable<Document> iterable=store.find(new Document("Id", 777)); //Probably this is where something is wrong 
    iterable.forEach(new Block<Document>() { 
    @Override 
    public void apply(final Document document) { 
      author[0]=document.toString(); 
      System.out.println(document); 
     }  
    }); 

     return author[0]; 
    } 

我嘗試了所有可能的組合,以我的知識。

new Document("Document.Details.Id":id); 
new Document("Details.Id":id); 
new Document("Document.Id":id); 

但沒有任何工作。

+0

試試這個: 文檔[「Details」] [「Id」] –

+0

您的JSON文檔很奇怪。通常對於Mongo,您應該刪除外部的「文檔」並將其作爲相同名稱的集合。包含'_id'和'Details'的插入文檔。 – Robert

回答

0

上面的JSON文檔沒有被解析。解析文檔並立即使用字段名稱進行訪問。

collection.insertOne(Document.parse(your data));