[英]insert current time into mongo using pymongo
當創建新文檔時,我正在嘗試以特定格式存儲當前時間。 以下是調用不工作方法的代碼部分:
dbm = AccountsDB()
dbm.store_info(user_info)
這是實際的AccountsDB()類:
#! /usr/bin/env python2.7
import pymongo
import datetime
import time
class AccountsDB():
def store_info(self, user_info=None):
try:
conn = pymongo.Connection('localhost', 27017)
db_name = 'accountsdb'
coll_name = 'user_info'
db = conn[db_name]
coll = db[coll_name]
print "Successfully connected to '%s'" % db_name
now = datetime.datetime.now()
if user_info is not None:
now = datetime.datetime.now()
'''
This is not Working...
created_time = {
'created_time': {
'day': now.day,
'month': now.month,
'year': now.year,
'hour': now.hour,
'minute': now.minute,
'second': now.second,
'microsecond': now.microsecond
}
}
user_info.append(created_time)
'''
print user_info
coll.insert(user_info)
else:
print 'No user_info'
print "Data where stored in database"
except:
print "Some Error Occured"
我希望文檔看起來像這樣:
> db.user_info.find().pretty()
{
"_id" : ObjectId("50d8ded1bdbff3401c252f1a"),
"ip" : "24.xx.xx.xx",
"region_code" : "MA",
"region_name" : "Massachusetts",
"secret_answer2" : "Mercedes",
"l_name" : "Flores",
"f_name" : "Jacob",
"country_name" : "United States",
// I want to add next objects to the document
'created_time': {
'day': 10,
'month': 11,
'year': 12,
'hour': 11,
'minute': 11,
'second': 22,
'microsecond': 1234
}
}
看起來你想讓python代碼在pymongo調用中將當前時間傳遞給mongo。 你這個:
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2012, 12, 24, 18, 33, 46, 266943)
完整代碼如下所示:
import pymongo
from datetime import datetime
class AccountsDB():
def __init__(self):
pass
def store_info(self, user_info=None):
try:
conn = pymongo.Connection('localhost', 27017)
db_name = 'accountsdb'
coll_name = 'user_info'
db = conn[db_name]
coll = db[coll_name]
print "Successfully connected to '%s'" % db_name
if user_info is not None:
user_info['created_time'] = datetime.now()
print user_info
coll.insert(user_info)
else:
print 'No user_info'
print "Data where stored in database"
except:
print "Some Error Occured"
a = AccountsDB()
a.store_info({})
pymongo建議您只需使用datetime.datetime.utcnow()
例如,以下代碼將當前UTC日期和時間存儲到MongoDB中:
>>> result = db.objects.insert_one( ... {"last_modified": datetime.datetime.utcnow()})
始終使用datetime.datetime.utcnow(),它返回UTC的當前時間,而不是
datetime.datetime.now()
,它返回當前的本地時間。 避免這樣做:
>>> result = db.objects.insert_one( ... {"last_modified": datetime.datetime.now()})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.