2017-09-30 9 views
0

私はdatetimesが格納されたフィールドを持つコレクション( 'main')でmongo db( 'test')を持っています。例えば次のよう日がある:Pymongo - 特定の日付ですべての文字列を照会します。

2017-07-20T22:56:28.121000Z

日付は文字列として格納されます。

私は、2017-07-20で発生したすべてのデータを収集し、それをpandasデータフレームに取り込みたいと考えています。以下は私が試しているコードです:

import datetime 
the_date = datetime.datetime(2017,7,20) # Date I want to query 

import pymongo 
import pandas as pd 
from pymongo import MongoClient 
client = MongoClient() 
db = client.test 
collection = db.main 

data = pd.DataFrame(list(collection.find({'time': { '$in':[the_date]}}))) 

data.head() 

これはちょうど空のフレームを返します。私は探している特定の日付を持つすべてのデータのmongodbをどのように照会することが可能か疑問に思っています。なぜ私の$演算子は動作しませんが、より良い方法を持っていない参照してください。

答えて

1

実際の日時を文字列と混合しています。 MongoDBは$inをdatetimeでstr() equivに自動変換しません。これを試して;アンカーに注意してください。

data = pd.DataFrame(list(collection.find({'time': {'$regex': '^2017-07-20'}}))); 
+0

素晴らしい解決策です。私はアンカーなしで試して、空のフレームを受け取りましたので、軽食はとても重要でした。 –

関連する問題