38

私はpyMongoクライアントを使用してISODateオブジェクトを作成する方法を見つけようとしてきましたが、これまでのところ成功していません。

私はhttp://pypi.python.org/pypi/pymongo3クライアントを使用しています。これは現在Python3で利用できる唯一の深刻なクライアントですが、問題はこの特定のpymongoバージョンに起因するものではないようです。

pymongoクライアントからこのMongoDBオブジェクトタイプを使用するための解決策を見つけた人がいるかどうか知りたいです...あなたの助けに感謝します!

4

5 に答える 5

69

datetime.datetimeのインスタンスを保存する必要があります。

Pythonシェルからの挿入:

>>> c.test.test.insert({'date': datetime.datetime.utcnow()})
ObjectId('4e8b388367d5bd2de0000000')
>>> c.test.test.find_one()
{u'date': datetime.datetime(2011, 10, 4, 16, 46, 59, 786000), u'_id': ObjectId('4e8b388367d5bd2de0000000')}

mongoシェルでのクエリ:

> db.test.findOne()
{
    "_id" : ObjectId("4e8b388367d5bd2de0000000"),
    "date" : ISODate("2011-10-04T16:46:59.786Z")
}
于 2011-10-04T16:51:26.913 に答える
14

タイムスタンプから ISODate を作成する方法を知りたい人のために:

ts = time.time()
isodate = datetime.datetime.fromtimestamp(ts, None)

datetimeこれにより、タイムゾーンのないオブジェクトが作成されます。MongoDB に挿入すると、適切な に変換されますISODate()

また、Python TimeTransitionsImageを確認することを強くお勧めします。tupleここではtuple という名前が付けられていることに注意してください(C の struct に相当)。また、名前が同じであっても、タプル フィールドは C の対応するフィールドと同じではないことに注意してください (たとえば、tm_wday は日曜日ではなく月曜日から始まります)。

于 2012-03-06T14:17:45.833 に答える