这篇博客的主要目标是掌握完成项目中的几个需求所需要的知识。需求列表如下:
- 能将某条代理服务器数据存储到MongoDB中
- 能查询出3天之内是否保存过指定的代理服务器
- 能更新一条代理服务器数据的爬取时间
那么这篇文章以用户登录数据为例来学习如何使用Python操作MongoDB。
配置环境
MongoDB的安装可以参考这篇文章:http://blog.csdn.net/chenpy/article/details/50324989
使用下面的命令安装pymongo:
pip install pymongo
Windows下的可视化工具最后选了Robomongo
插入一条数据
def insert_user_login_record():
client = MongoClient('amaster', 27017)
db = client.test_database
collection = db.user_login_collection
record = {'user_name': '张三',
'last_login_time':datetime.datetime(2017,02,28)}
collection.insert_one(record)
运行后,数据库中被插入了一条数据。
查找一个用户3天内的登录信息
def find_user_3days_login_record():
client = MongoClient('amaster', 27017)
db = client.test_database
collection = db.user_login_collection
d = datetime.datetime.now()
d = d - datetime.timedelta(days=3)
record = collection.find_one({'user_name': '张三','last_login_time':{"$gt": d}})
print record
输出结果如下:
None
如果查找5天内的登录信息,将代码改为d = d - datetime.timedelta(days=5)
,那么就会找到那条登录信息。
输出结果如下:
{u'_id': ObjectId('58b919fb6aed1c1cbc3aba55'), u'user_name': u'\u5f20\u4e09', u'last_login_time': datetime.datetime(2017, 2, 28, 0, 0)}
修改用户的最后登录时间
如果找到了5天内用户的登录记录,就用最新的时间更新它。
def update_user_login_time():
client = MongoClient('amaster', 27017)
db = client.test_database
collection = db.user_login_collection
record = find_user_3days_login_record()
record['last_login_time'] = datetime.datetime.now()
collection.save(record)
代码执行后,数据库中的用户登录时间被修改了。
看起来这个需求需要的MongoDB的知识已经掌握了。但是我对MongoDB实在是一点都不懂。以后的项目中如果需要更多的知识就再来补充。