1.Pymongo
PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式。
2.安装
如果没有pip, 建议先安装,至于为啥要用pip你懂得
yum install python3-pip
进入虚拟环境
sudo pip install pymongo
或源码安装
python setup.py install
查看 pymongo是否安装成功
root@pts/4 $ python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymongo
>>> pymongo.version
'3.2.2'
3.使用
导入模块
import pymongo
#或者
from pymongo import MongoClient
建立于MongoClient 的连接:
client = MongoClient('localhost', 27017)
# 或者
client = MongoClient('mongodb://localhost:27017/')
# 或者
>>> client = pymongo.MongoClient('192.168.100.3', 27017)
>>> print client
MongoClient(host=['192.168.100.3:27017'], document_class=dict, tz_aware=False, connect=True)
得到数据库
db = client.test_database
# 或者
db = client['test-database']
# 或者
db = client.get_database('test_database')
得到一个数据集合
collection = db.test_collection
# 或者
collection = db['test-collection']
# 或者
collection = db3.get_collection('test-collection')
4.完成命令行项目:学生信息管理(基于Python2.7)
代码操作
#-*- coding:utf-8 -*-
import pymongo
def system():
print('◆您将进入数据库管理系统,数据无价、谨慎操作!◆')
print('◇1:查看数据◇')
print('◇2:增加数据◇')
print('◇3:修改数据◇')
print('◇4:删除数据◇')
print('◇5:搜索数据◇')
print('●6:退出数据库管理系统●')
# 建立与mongodb的连接
client = pymongo.MongoClient('localhost', 27017)
# 得到数据库
stu = client['stu']
# 得到一个数据集合
message = stu['message']
while True:
order = int(raw_input('请输入相关指令:'))
if order==1:
exit = message.count()
if exit==0:
print('抱歉,数据库中目前没有相关数据!')
else:
for data in message.find():
content = data['name']+data['age']+data['sex']
print(content)
elif order ==2:
name = raw_input('请输入学生姓名:')
age = raw_input('请输入学生年龄:')
sex = raw_input('请输入学生性别(男/女):')
data = {
'name':name,
'age':age,
'sex':sex,
}
message.insert_one(data)
print ('添加成功!')
elif order == 3:
name = raw_input('请输入要修改的学生姓名:')
exit = message.count({'name': name})
if exit != 0:
age = raw_input('请输入修改后的学生年龄:')
message.update({'name':name},{'$set':{'age':age}})
print('修改成功')
else:
print '抱歉,数据库中没有这个学生的信息!'
elif order == 4:
name = raw_input('请输入要删除的学生姓名:')
exit = message.count({'name': name})
if exit != 0:
message.remove({'name':name})
print('删除成功')
else:
print '抱歉,数据库中没有这个学生的信息!'
elif order == 5:
name = raw_input('请输入要查询的学生姓名:')
exit = message.count({'name':name})
if exit!=0:
data = message.find_one({'name':name})
content = data['name']+data['age']+data['sex']
print content
else:
print '抱歉,数据库中没有这个学生的信息!'
elif order == 6:
print('感谢您的使用!')
break
else:
print('您的输入有误,请输入有效指令(1/2/3/4/5)')
if __name__ == '__main__':
system()