2017-11-07 9 views
0

私のようにこのタイプのモデルを挿入する:オブジェクトにデータを追加し、そのコンテンツをMongoDBの1ページに表示する方法JAVA?

{ 
    _id: POST_ID 
    title: TITLE_OF_POST, 
    by: POST_BY, 
    questions: [ 
     { 
     QID:1, 
     Question:"text" 
     }, 
     { 
     QID:1, 
     Question:"text" 
     } 
    ] 
} 

私はその後、1に表示し、私はオブジェクト名の質問に質問を挿入したい

Document document=new Document("topic",topic) 
      .append("empid",empid) 
      .append("teacher", teacher) 
      .append("date",d) 
      .append("questions",[ 
     for (int i = 0; i < questions.length; i++) {//This is not correct. 
         String string = questions[i];}]); 

を使用して上記の状況をモデル化したいです1回のページですべての質問を表示するには、servlet out.printlnを使用してください。私は文書を選択してからqidを繰り返し、すべての質問を表示したい。

例:

Title of Assignment \n 
Teacher Name \n 
Question 1: Content of question 1. \n 
Question 2: Content of Question 2. 
+0

何を試しましたか?あなたが過去に得ることができない問題がありましたか? – MrJLP

+0

私は上記のコードは、ドキュメントを作成するために言及して動作しません、構文エラーがあります。 オブジェクトのオブジェクトの内容を照会して表示する方法がわからないので、すべての質問を1ページにリストしたいと思います。 – Ratik

+0

コンパイル時に発生するエラーは何ですか?あなたはそれを質問に含めるべきです。 – MrJLP

答えて

1

Documentインスタンスを作成するためにあなたは絶対に間違っているJava構文を使用しています。ご質問の最初にリストを作成し、ドキュメントのインスタンスを準備しながら、その後、このリストを使用する必要があります

.append("questions",[ for (int i = 0; i < questions.length; i++) 

List<Map<String, Object>> questions = new ArrayList<>(); 
questions.add(new HashMap<String, Object>(){{ 
    put("QID", 1); 
    put("Question", "text"); 
}}); 
questions.add(new HashMap<String, Object>(){{ 
    put("QID", 2); 
    put("Question", "text"); 
}}); 


Document document = new Document("_id", 1001) 
     .append("topic", "topic") 
     .append("empid", 5) 
     .append("teacher", "teacher") 
     .append("date", 555) 
     .append("questions", questions); 

collection.insertOne(document); 

から、以前に挿入された項目を取得するために、あなたのようなものを使用することはできませんJavaで あなたは次のものを使用することができます:

Document foundDocument = collection.find(new Document("_id", 1001)).first(); 
    List<Map> foundQuestions = (List) foundDocument.get("questions"); 
    for (Map foundQuestion: foundQuestions) { 
     Integer qid = (Integer) foundQuestion.get("QID"); 
     String questionValue = foundQuestion.get("Question").toString(); 
     System.out.println(qid + " : " + questionValue); 
    } 
+0

これは完全に機能します。ありがとう。質問の第2部分に答えてください。どうすれば1つのドキュメントの内容を表示し、それをオブジェクトの質問に反復して1ページに質問と質問を表示できますか?私はすべての文書とその内容のリストを表示することができます。 – Ratik

+0

更新された回答の例_id値によるコレクションの照会方法と「質問」リストの取得 –

+0

Vasiliyありがとうございました。このソリューションは完璧に機能しました。再度、感謝します。これは私の問題に対する完璧な解決策です。 – Ratik

関連する問題