2016-08-13 6 views
2

私は現在、Pythonを使用してデータをJSONに前処理し、nodejs経由でデータをコレクションに挿入しています。collection.insert(data, {safe:true}, function(err, result) {});私のクエリはnodejを使っても実行されます。nodejsで使用されているmongodbクエリのJSONにタイムスタンプを保存するにはどのような形式を使用しますか?

私は以前に私のタイムスタンプをフォーマットするのpython datetime.datetimeを使用し、これが私のJSONが構成されている方法です。

[{ 
    "timestamp" : "2016-08-02 20:30:02", 
    "detail" : blah blah blah 
    },{ 
    "timestamp" : "2016-08-02 20:33:23", 
    "detail" : blah blah blah 
    }, 
    ... 
] 
私はタイムスタンプに基づいてクエリを実行しようとすると、このようなポストの多くに応じた

Create an ISODate with pyMongo、私はISODateを私の質問に使用する予定です。だから私の試みの一つは:

collection.findOne({ timestamp: new ISODate("2016-08-02T20:33:23.786Z")}) 

これは、ISODateが定義されていないと言います。この1つは、レコードが見つからないと言う

collection.findOne({ timestamp: new Date("2016-08-02T20:33:23.786Z")}) 

:だからこのpostに基づいて、私は私にクエリを変更しました。タイムスタンプをJSONにどのように保存すればよいですか? new Date("2016-08-02T20:33:23.786Z")は私のインスタンスを取得する正しい方法ですか?また、mongodbがタイムスタンプを照会するとき、それは正確な時間と分を見ますか?タイムスタンプがどのように格納されているかのように、正確な年、月、日、時、分、秒を検索したい。

答えて

1

次のanswerは、DateISODateでも構築された)というJavaScriptを使用することをお勧めします。これはMongoにネイティブです。それはさらに明確BSON documentationに食い込むと、内部値:

BSON日付は、Unixエポック(1970年1月1日)からのミリ秒数を表す64ビットの整数です。これにより、過去と将来の約2億9000万年の表現可能な日付が得られます。

したがって、短い答えは、どの言語を保存しても、その64ビット整数のミリ秒を格納するだけで、ネイティブで読み取ることができます。私はその価値が書面と読書の両方でUTCであることを期待しています。

following answerは、Python datetimeオブジェクトをエポックからミリ秒に変換する方法についても説明しています。

関連する問題