2017-10-28 7 views
0

私はチュートリアルdocumentationに従ってMongoDBコーディングを行っています。私はコンボボックスでフォームを作って特定のレコード項目を取得し、ボタンをクリックしてすべての同様のレコードを表示しました。それはうまく動作しますが、結果は正確ではありません。Java MongoDB Filterはクエリ結果に誤ったデータを記録します

私のMongoドキュメント構造は次のとおりです。

// collection: Records 
{ 
    "_id" : ObjectId("59f46f75835301421ee36111"), 
    "Asset Type" : "Furniture", 
    "Room Number" : "01", 
    "Barcode" : "55454", 
    "Item Description" : "Des", 
    "Acqusition Date" : "10/28/2017", 
    "Value" : "2100" 
} 

私はルームナンバーでフィルタリングしています。ここに私のコードです。

JComboBox comboBox = new JComboBox(); 
     comboBox.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
       comboSelected = (String) comboBox.getSelectedItem(); 
       System.out.println(comboSelected); 
      } 
     }); 

    JButton btnG = new JButton("Get Data"); 
    btnG.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
       String str2 = comboSelected; 
       System.out.println(str2); 
       // Below Method is to get all room data on selected room 
       Block<Document> roomBlock = new Block<Document>() { 
        @Override 
        public void apply(final Document document) { 
         System.out.println(document.toJson()); 
         //textBlock.setText(document.toJson()); 
         //str1 = new String (document.toJson()); 
        } 
       }; 

       collection.find(gt("Room Number", str2)).forEach(roomBlock); 
     } 
}); 

たとえば、私が部屋1を選択した場合、関連性のないレコードが表示されます。

私は間違っていますか?誰も助けることができますか? (TIA)

答えて

0

私が間違っているフィルタ「GT」を使用していた

collection.find(gt("Room Number", str2)).forEach(roomBlock); 

MongoDBのクエリのdocumentationを通過した後、私は私が私の結果をフィルタリングする「EQ」を使用する必要がありました。同じ問題を抱えているなら、これを試してみてください。

collection.find(eq("Room Number", str2)).forEach(roomBlock); 
関連する問題