Я написал следующую функцию, чтобы взять период времени и вернуть результаты в основную программу после выполнения поиска в монго с помощью пакета pymongo:
def searchMsgByDate (mycol,option):
dt = date.today()
if option == "today":
start = datetime.combine(dt, datetime.min.time())
end = datetime.combine(dt, datetime.max.time())
elif option == "yesterday":
start = datetime.combine(dt, datetime.min.time()) - timedelta(days=1)
end = datetime.combine(dt, datetime.max.time()) - timedelta(days=1)
elif option == "week":
start = datetime.combine( dt - timedelta(days=dt.weekday()), datetime.min.time())
end = datetime.combine(dt, datetime.max.time())
elif option == "month":
start = datetime.combine( dt - relativedelta(day=1) , datetime.min.time())
end = datetime.combine(dt, datetime.max.time())
elif option == "year":
start = datetime.combine( dt - relativedelta(month=1,day=1) , datetime.min.time())
end = datetime.combine(dt, datetime.max.time())
elif option == "forever":
start = datetime.combine( date(1970, 1, 1) , datetime.min.time())
end = datetime.combine(dt, datetime.max.time())
else:
print("Invalid option for searchMsgMain; exiting")
result = mycol.find({"msg_date": { "$gte": start, "$lt": end}});
record_count = 0
for entry in result:
record_count = record_count + 1
if record_count > 0:
print ("Records found =", record_count)
else:
print ("No records found")
return result
Вот основная программа, которая вызываетфункция:
out = searchMsgByDate(mycol)
for entry in out:
....
....
Когда я это делаю, в основной программе ничего не происходит.Я могу подтвердить, что результат поиска в функции дает более 90 записей
Я думаю, что я делаю что-то не так с возвратом объекта такого типа, или это невозможно.Я могу успешно возвращать простые значения.
Любые мысли приветствуются.