2016-04-28 4 views
2

Например, у меня есть эти два файла JSON, которые я вставил в mongo DB java driver 3.0.4. Я пытаюсь получить детали, основанные на поле Id. Но все мои усилия напрасны. Может кто-нибудь сказать, где я испортил. Спасибо в AdvanceНайти значение JSON в mongodb java driver 3.0.x

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 (ваши данные));

Смежные вопросы