2016-04-28 73 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));