2015-04-08 36 views
0

我想使用mongodb在數據庫中存儲daterange值,所以我使用了String返回類型,但我無法保存日期範圍。是否可以將日期範圍直接保存在數據庫中,或者我必須將日期範圍拆分爲開始日期和結束日期並存儲在數據庫中?前端是AngularJS和後端是MongoDB的...存儲在數據庫中的日期範圍

+0

你能解釋一下你的問題多一點..喜歡的東西,你已經嘗試和例如您嘗試存儲的值以及存儲時得到的確切錯誤? –

+0

嗨Viraj,我沒有得到任何錯誤..我試着'私人字符串dateRange;'然後在實體類中的getter和setter ...從ui傳遞值作爲ng-model =「dateRange」。我無法保存在數據庫中。我從日期範圍選取器日曆中選擇日期範圍。 –

+0

你嘗試登錄並檢查日期是否在Java類中收到..?你仍然聽起來抽象可以更好地看到一些代碼,所以我們不會問這麼多問題。 –

回答

0

的MongoDB不提供任何形式的日期範圍的數據類型。

Java8提供PeriodDuration類型。在Java8之前,有很好的Joda Time庫也提供了Period和Duration數據類型。

Java的MongoDB庫沒有任何類型的轉換器。它只知道java.util.Data

儘管如果您想要存儲Java8或Joda PeriodDuration,您需要爲Java MongoDB驅動程序編寫客戶數據類型轉換器,或者直接在應用程序代碼中進行轉換。 (兩者都差不多)。

通過這種方式,您可以在MongoDB中將日期範圍保存爲{ range: {from: ISODate("2015-01-01T00:00:00.000Z"), to: ISODate("2015-01-02T00:00:00.000Z") } }

那麼當然你必須對range.fromrange.to字段進行查詢。


課程的第二部分是,從HTML日期範圍選擇器的價值得到的序列正確地字符串,可以通過你的Java後端讀取。

雖然確認(例如,通過簡單地使用System.out.println(...)),該數據被正確的Java的反序列化。

如果所有的工作就可以對付的MongoDB,即一個日期範圍對象轉換兩個java.util.Date對象等頁。

相關問題