2017-10-20 71 views
0

問題從mongodb中檢索數據並顯示在csv文件中時出現意外輸出?

我從mongodb的檢索數據並在文本/ csv格式產生輸出。 儘管用戶記錄對於用戶的字段興趣沒有任何價值,但我仍然對給定用戶的字段興趣獲得價值。

MyAnalysis:

在調試我得到這些結果匹配我的MongoDB的數據,但所產生的錯誤文本/ CSV數據,。

59e75753a7986c0a86c758ffCOOKING 
[COOKING] 
59e759c6a7986c0a86c75901READING 
[READING] 
59e75f0ea7986c0c4b003e24READING 
[READING] 
59e7926ea7986c0fc809cbd9CRICKET 
[CRICKET] 

任何人都可以引導什麼,我提前做wrong.Thankx。

下面是我寫

@RestController 
@RequestMapping("/report") 
public class ReportController { 
@Autowired 
private UserService userService; 
@RequestMapping(value = "/endcustomer", method = RequestMethod.GET, produces = "text/csv") 
public void endCustomerReport(HttpServletResponse response) { 
    ICsvBeanWriter csvWriter=null; 
    int pageSize=2000; 
    Page<User> users=null; 
    int page=0; 
    String csvFileName = "End-customer.csv"; 
    List<String> headerList=null; 
    Field[] declaredFields=null; 
    UserReport userReport=new UserReport(); 
    try { 
     response.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", csvFileName)); 
     headerList = new ArrayList<>(); 
     declaredFields = UserReport.class.getDeclaredFields(); 
     for (Field declaredField : declaredFields) { 
      headerList.add(declaredField.getName()); 
     } 
     csvWriter = new CsvBeanWriter(response.getWriter(), 
       CsvPreference.STANDARD_PREFERENCE); 

     String[] header = headerList.toArray(new String[]{}); 
     csvWriter.writeHeader(header); 
/* CsvPreference.STANDARD_PREFERENCE 
    Ready to use configuration that should cover 99% of all usages.*/ 


     do { 
      users = userService.getAllUsers(new PageRequest(page,pageSize)); 
      for (User user : users) { 
       List interests=new ArrayList(); 
       userReport.setName(user.getName()); 
       userReport.setUsername(user.getUsername()); 
       userReport.setContact(user.getContact()); 
       userReport.setAddress(user.getAddress()); 
       userReport.setEmail(user.getEmail()); 
       userReport.setConnections(user.getConnections()); //See it's data 
       userReport.setPending(user.getPending());//See it's data 
       INTERESTS intrests[]=user.getInterests(); 
       if(intrests!=null) { 
        for (INTERESTS interest : intrests) { 
         System.out.println(user.getId()+""+interest); 
         interests.add(interest); 
        } 
        System.out.println(interests); 
        userReport.setInterests(interests); 
       } 
       //See it's data 
       userReport.setOccupation(user.getOccupation()); 
       userReport.setGender(user.getGender()); 
       csvWriter.write(userReport, header); 
      } 
      page++; 
     }while (users.hasNext()); 
    } 
    catch (IOException e){ 
     e.printStackTrace(); 
    } 
    finally{ 
     if(csvWriter!=null){ 
      try { 
       csvWriter.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

} 

我的用戶文檔的代碼

{ 
"_id" : ObjectId("59e75753a7986c0a86c758ff"), 
"_class" : "com.ideationz.client.models.User", 
"contact" : "9811164864", 
"email" : "[email protected]", 
"address" : "44HakikatNagar", 
"gender" : "MALE", 
"name" : "jalaj", 
"dob" : ISODate("1993-02-10T18:30:00.000+0000"), 
"username" : "jalaj", 
"country" : "india", 
"designation" : "engineer", 
"imid" : "1", 
"interests" : "COOKING" 
} 
{ 
"_id" : ObjectId("59e7583da7986c0a86c75900"), 
"_class" : "com.ideationz.client.models.User", 
"contact" : "9811164865", 
"email" : "[email protected]", 
"address" : "44HakikatNagar", 
"gender" : "MALE", 
"name" : "jalaj5", 
"dob" : ISODate("1994-02-10T18:30:00.000+0000"), 
"username" : "jalaj5", 
"country" : "india", 
"designation" : "engineer", 
"imid" : "2" 
} 
{ 
"_id" : ObjectId("59e759c6a7986c0a86c75901"), 
"_class" : "com.ideationz.client.models.User", 
"contact" : "9811164866", 
"email" : "[email protected]", 
"address" : "44HakikatNagar", 
"gender" : "MALE", 
"name" : "jalaj6", 
"dob" : ISODate("1994-02-10T18:30:00.000+0000"), 
"username" : "jalaj6", 
"country" : "india", 
"designation" : "engineer", 
"imid" : "3", 
"interests" : "READING" 
} 
{ 
"_id" : ObjectId("59e75f0ea7986c0c4b003e24"), 
"_class" : "com.ideationz.client.models.User", 
"interests" : "READING", 
"contact" : "9811164867", 
"email" : "[email protected]", 
"address" : "44HakikatNagar", 
"gender" : "FEMALE", 
"name" : "jalaj7", 
"dob" : ISODate("1994-02-10T18:30:00.000+0000"), 
"username" : "jalaj7", 
"country" : "india", 
"designation" : "engineer", 
"imid" : "4" 
} 
{ 
"_id" : ObjectId("59e7926ea7986c0fc809cbd9"), 
"_class" : "com.ideationz.client.models.User", 
"contact" : "9811164869", 
"email" : "[email protected]", 
"address" : "44HakikatNagar", 
"gender" : "MALE", 
"name" : "jalaj9", 
"dob" : ISODate("1993-11-13T18:30:00.000+0000"), 
"username" : "jalaj9", 
"country" : "india", 
"designation" : "engineer", 
"imid" : "9", 
"interests" : "CRICKET" 
} 

總產值有望

name username contact  address  email     connections  pending interests occupation gender region 
jalaj jalaj 9811164864 44HakikatNagar [email protected]       [COOKING]    MALE  
jalaj5 jalaj5 9811164865 44HakikatNagar [email protected]       []      MALE //Change here 
jalaj6 jalaj6 9811164866 44HakikatNagar [email protected]       [READING]    MALE  
jalaj7 jalaj7 9811164867 44HakikatNagar [email protected]       [READING]    FEMALE  
jalaj9 jalaj9 9811164869 44HakikatNagar [email protected]       [CRICKET]    MALE  

輸出中顯示

name username contact address email connections pending interests occupation gender region 
jalaj jalaj  9811164864 44HakikatNagar [email protected]   [COOKING]  MALE  
jalaj5 jalaj5 9811164865 44HakikatNagar [email protected]   [COOKING]  MALE  
jalaj6 jalaj6 9811164866 44HakikatNagar [email protected]   [READING]  MALE  
jalaj7 jalaj7 9811164867 44HakikatNagar [email protected]   [READING]  FEMALE 
jalaj9 jalaj9 9811164869 44HakikatNagar [email protected]   [CRICKET]  MALE  

回答

1

先前迭代保留。

您必須在for循環中初始化userReportUserReport userReport=new UserReport();)或執行setInterests(null)

相關問題