使用Python从MongoDB打印日期

时间:2018-04-24 10:06:24

标签: python mongodb pymongo

我在db中有两个不同日期的对象:

{
"_id" : ObjectId("5addeaf92602ff20497e9406"),
"success" : true,
"timestamp" : 1524477784,
"base" : "EUR",
"date" : "2018-04-22",
"rates" : {
    "AED" : 4.492662,
    "ALL" : 128.39508,
    "AMD" : 586.837094}

和第二个:

{
"_id" : ObjectId("5addb57d0043582d48ba898a"),
"success" : true,
"timestamp" : 1524477784,
"base" : "EUR",
"date" : "2018-04-23",
"rates" : {
    "AED" : 4.492662,
    "ALL" : 128.39508,
    "AMD" : 586.837094}

我的python代码:

import pymongo

uri = "mongodb://127.0.0.1:27017"
client = pymongo.MongoClient(uri)
database = client['db']
collection = database['currency']

d=(*something I guess*)(input('Insert date: '))
item = collection.find_one({})
data= item['date']['d']
print(data)

我想要的是插入一天或特定日期,然后该程序将打印该特定日期信息。 在db中,日期是String,我认为我必须转换它。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

好吧,首先data= item['date']['d']这不会有效,因为第二个[]用于索引。在你的情况下,你要么输入与你的字符串日期相同的输入,要么将其转换为输入日期,然后检查它

要将字符串转换为日期,请执行以下操作:

from datetime import date
year, month, day = map(int, (d['date']).split("-"))
required_date = date(year, month, day)
print required_date

注意:假设我在d

中有你的mongo对象/字典

,第二种情况:

以字符串的相同格式从用户那里获取输入,例如:

userinput = str(raw_input('Enter Date: in Format(year, month, day) with seprator "-" e.g: 2018-04-23 \n'))

if userinput == d['date']:
    print 'Correct'

再次假设d是您的mongo对象。

注意: 它可以用来表示你正在使用的情况,然后对它进行if检查。

希望它对你有所帮助! :)