17

Web サーバーに Mongoose と Node.js を使用しています。

ドキュメント スキーマの一部として、'timestamp' フィールドがあります。スキーマ内の行は次のとおりです。 timestamp: { type: Date, default: Date.now }

これは正常に機能し、タイムスタンプに基づいてドキュメントを取得できますが、ここで説明されているように ISODate 形式で保存されます: http://docs.mongodb.org/manual/core/document/#date、次のように:

"timestamp":"2013-04-04T19:31:38.514Z"

私はこれで構いませんが、これをそのままクライアントに送ります。これは、操作を比較する前に、クライアント側で Date.parse() を使用する必要があることを意味します。

日付を整数として保存する方法、または取得時に自動的に日付に変換する方法はありますか?

それをそのままにして、クライアント側で処理する必要がある理由はありますか?

前もって感謝します。

4

5 に答える 5

6
var schema = new Schema({
  timestamp: {type:Number, default: new Date().getTime()}
});

これで問題が解決することを願っています。

于 2017-04-01T12:13:41.007 に答える
3

これは私にとってはうまくいきます

db.eurusd.ticks.findOne({_id:ObjectId("518636777055000000000000")}).t.getTime()

ミリ秒単位で時間を返します。返されたドキュメントには構造があります

{
 "_id" : ObjectId("518636777055000000000000"),
 "t" : ISODate("2013-05-05T10:37:43Z"), // date data type
 "ask" : "Joe",
 "bid" : 33
}
于 2013-05-05T10:41:11.860 に答える
3

ベスト プラクティスとして、データに値する型を維持することをお勧めします。

とにかく、クライアントが数値を扱う必要がある場合は、日付をミリ秒単位でクライアントに渡すだけで、Node.js で Date オブジェクトを操作できます。

ただ電話timestamp.getTime()して、ta-da で、UNIX タイムスタンプをクライアントに提供する準備が整いました。

于 2013-04-05T11:16:23.000 に答える