2017-05-21 7 views
0

今日の日付機能を持つドキュメントをpythonで見つけることに問題があります。pymongoでの問合せの問題

私は次の関数を使用します。

次の値を与える
datetime.datetime.now().date().strftime('%Y-%m-%d') 

"2017-05-21"

2017-05-21

はしかし、私の文書(モンゴ)内の値は、次のようにその周りに取り付けた二重の文字列を持っています

文字通り、上記の文字列( "2017-05-21")を正確に私のpymongoクエリに埋め込むのは魅力的です。しかし、私はdatetime関数の動的性が必要ですが、残念ながら、それはクエリに必要な二重引用符の日付文字列と一致しません。

回避策を知っている人はいますか?私はすでに置換関数などを試しています。これは、一重引用符内に二重引用符を作成するか、何もしません。

答えて

0

あなたのMongoDB文書が誤って挿入されたように聞こえる、BSONのdatetimesではなくdateフィールドのテキストを使っているようだ。

あなたは、このようなBSON日時を含む文書を挿入することができるようにPyMongoは自動的に、Pythonの日付時刻とBSONの日付時刻との間の変換:

dt = datetime.datetime.utcnow() 
collection.insert_one({'myDate': dt}) 

その日付の比較がそうのような動作するようになりまし証明:

# There is a document with myDate in the past, now. 
print(collection.find_one({'myDate': {'$lt': datetime.datetime.utcnow()}})) 
# No document with myDate in the future. 
print(collection.find_one({'myDate': {'$gt': datetime.datetime.utcnow()}})) 
+0

Thanks A. Jesse、私はまだあなたのソリューションを試していませんが、それがうまくいくと思っています。どうもありがとう!! – Gamelogic

関連する問題