2011-01-26 21:41:09 +0000
のようなUTC時刻文字列は、ビューキーで使用されると正しくソートされるので大丈夫かもしれませんが、タイムゾーン(例:2011-01-26 16:41:09 -0500
)を保存するとドキュメントが読みやすくなります。日付をエポック整数に変換することは、可読性の観点からは魅力的ではないようですが、パフォーマンスには最適かもしれません(あるいはそれは違いがありますか?)。ここで推奨されるプラクティスは何ですか?CouchDBに日付時刻(タイムスタンプ)を保存する最も良い方法は何ですか?
答えて
時間は、1次元のものです。タイムスタンプ+タイムゾーンは2次元で、ある時点と場所を表します。ソファのビューは1次元ですが(GeoCouchプラグインではありません)、共通ゾーン(UTC)に保存するのが賢明です。
おそらく最も将来性のあるフォーマットは、おそらく時間順に自然に並べ替える文字列です。おそらく最も便利なフォーマットは何JSON2出力です:
> a = new Date();
Thu Jan 27 2011 18:40:52 GMT+0700 (ICT)
> JSON.stringify(a)
"2011-01-27T11:40:52.280Z"
いつでもあなたの日付を保存することができます*あなたの意見を重要なものに出力する方法です。
* Date.parse()がそれを読むことができる限り。
良い解決策はここにあります:Sorting Dates in CouchDB Views
私は、最後のエポックからのミリ秒を使用したいです。私は(ミリ秒)のタイムスタンプは、キーB/Cでビューを作成したいと
var milliseconds = new Date().valueOf();
var date = new Date(milliseconds);
:あなたがしてミリ秒から新しい日付を作成することができます
new Date().valueOf()
:あなたがこれを理解することができます並べ替えはとても簡単です。
また、少なくともCouchDB以外のデータを扱う場合は、整数を使用する方が文字列より効率的だと思います。
Map reduceのMap側を使用している場合は、これらの提案はおそらく問題ありません。しかし、結果(_count、_stats、_sum)を減らしたい場合、group_levelを使用できるように日付を配列として出力することをおすすめします。
たとえば、「2011-02-14」のように書式設定された日付文字列で(doc.date.split( ' - '))を発行すると、1日、 group_level = 3、2、および1をそれぞれ使用して年を設定します。
キーの先頭に日付以外のデータを追加することで、データをさらにフィルタリングできます。たとえば、Twitterの名前を出力していた場合、あなたのキーは["bigbluehat"、 "2011"、 "02"、 "14"]のようになり、あなたのreduceは "bigbluehat"というユーザーのすべてのツイートの合計数を返します日、月、および年の間にそのユーザーの統計情報を取得できます。
物事の削減面を使用していない場合は、文字列ベースのキーは問題ありません。
私が使用しているデータストレージの種類にかかわらず、通常、そこにはフィールドとしてUnixタイムスタンプが必要です。そこには、作成日のものと、ドキュメント変更。
私は、単純に簡潔にするために、「エポックからのミリ秒」ではなく、「エポックからの秒」アプローチを好んでいます。
Math.round(new Date().getTime()/1000)
私のためのトリックです。
読みやすさの観点から、私は簡単な比較のために整数として保存し、フロントエンドを使ってうまく表示したいと考えています。
Unixのタイムスタンプは、どんなシステムにも時間を保存する最良の方法です。私はタイミングが重要なロボット工学のバックグラウンドからお分かりになります。 – msysmilu
UNIXのタイムスタンプはしばしば良い方法ですが、そうでないケースが多いです。たとえば、32ビットの住宅ローン計算機でUnixのタイムスタンプを使用すると、2038年に住宅ローンが稼働して、Unixのタイムスタンプがなくなると、悪い時間を過ごすことになります。 –
- 1. PostgreSQLデータベースに日付と時刻を保存する最良の方法
- 2. 日付と時刻を検証する最良の方法は何ですか
- 3. Swagger仕様で時刻(日付なし)を表す最も良い方法
- 4. ローカルにデータベースレコードを保存する最も良い方法は何ですか?
- 5. iOSにローカルデータを保存/ロードする最も良い方法は何ですか?
- 6. NoSQLデータベースにオプションを保存する最も良い方法は何ですか?
- 7. SQLiteに配列を保存する最も良い方法は何ですか?
- 8. PostGresデータベースにチェックボックスを保存する最も良い方法は何ですか
- 9. バイナリツリーをサーバに保存する最も良い方法は何ですか?
- 10. MySQLのXクリック/日を保存する最も良い方法
- 11. C#でRichTextFileを保存する最も良い方法は何ですか?
- 12. アンドロイドプレビューフレームを30FPSで保存する最も良い方法は何ですか?
- 13. H2Oで距離を保存する最も良い方法は何ですか?
- 14. ユーザーが日付を入力する最も良い方法は何ですか
- 15. MySQLの正確な日付時刻を保存する方法
- 16. Firebaseのタイムスタンプを日付と時刻に変換する方法
- 17. タイムスタンプの列を日付と時刻に分割する方法
- 18. ゲームのスコアを保存する最も良い方法は何ですか?
- 19. Sklearnモデルを保存する最も良い方法は何ですか?
- 20. ダウンロードしたファイルを保存する最も良い方法は何ですか?
- 21. リッチテキスト(WYSIWYG出力)を保存する最も良い方法は何ですか?
- 22. 日付ではない日付と文字列を比較する最も良い方法は何ですか?
- 23. 複数のタイムスタンプと番号を保存する最も良い方法は?
- 24. PHPで後で表示できるように、MySQLデータベースに日付と時刻を保存する最良の方法は何ですか?
- 25. Clojureで日付と時刻を取得する最良の方法は何ですか?
- 26. 他のタイムゾーンで日付/時刻を保存するには
- 27. 空の日付をmySQLの日付フィールドに保存する最も良い方法
- 28. UTCでの日付時刻の保存
- 29. SQL Server:時間を保存する最も最適な方法(日付なし)
- 30. Wikiアプリケーションの作成時にバージョニングを保存する最も良い方法は何ですか?
+1しかし、タイムスタンプは文書IDに出力される可能性があるため、私は答えをJSON2形式にすることをお勧めします。 (ログを保存するのは、 '_id'の中にタイムスタンプがたくさんある状況です。) – JasonSmith