2012-01-27 53 views
0

我有一個包含50個不同字段的大文檔。保存此文檔時只需要幾個字段。當我通過Spring Data MongoDB獲取該文檔時,是否可以從對象中刪除null值字段?Spring Data MongoDB返回對象轉換器

在保存Spring Data期間,MongoDB做同樣的事情,只保存那些不是null的值。

回答

0

我們Query類有一個fields()方法,它返回一個Field對象,允許限定哪些字段要被從文檔(Javadoc)讀取。因此,當針對一個集合執行查詢對象時,您會獲得部分文檔以及部分填充的域對象。

+0

感謝奧利弗爲您在這裏快速回復。但我還有其他一些麻煩。我在我的代碼中使用了這個。 \t @Query(value =「{'id':?0,'roles':{$ in:?1}}」,fields =「{'firstName':1,'lastName':1}」) \t public User findOneByIdAndRolesIn(ObjectId id,List roles); 你可以看到我得到一個用戶對象的回報。 有沒有一種方法可以使用對象的一小部分並提供給客戶端。 像 { 「名字」: 「阿密特」, 「中間名」:空, 「姓氏」: 「考希克」 } 和因爲它是空沒有中間名。 在此先感謝。 – user359490 2012-01-27 19:05:15

+0

您應該可以簡單地創建一個只包含三個字段的類,並將其用作finder方法的返回類型。這樣您可以將返回的文檔投影到專用類上。將字段限制爲類中包含的字段以避免整個文檔被加載可能仍然是合理的。 – 2012-02-01 08:00:23