- 点击查看官方文档 http://api.mongodb.com/python/current/tutorial.html
- 安装python包
sudo pip install pymongo
- 引入包pymongo
from pymongo import *
MongoClient对象
- 使用init方法创建连接对象
client = MongoClient('主机ip',端口)
Database对象
- 通过client对象获取获得数据库对象
db = client.数据库名称
Collections对象
- 通过db对象获取集合对象
collections = db.集合名称
- 主要方法如下
- insert_one:加入一条文档对象
- insert_many:加入多条文档对象
- find_one:查找一条文档对象
- find:查找多条文档对象
- update_one:更新一条文档对象
- update_many:更新多条文档对象
- delete_one:删除一条文档对象
- delete_many:删除多条文档对象
Cursor对象
- 当调用集合对象的find()方法时,会返回Cursor对象
- 结合for...in...遍历cursor对象
增加
- 创建mongodb_insert1.py文件,增加一条文档对象
#coding=utf-8
from pymongo import *
try:
# 接收输入
name=raw_input('请输入姓名:')
home=raw_input('请输入家乡:')
# 构造json对象
doc={'name':name,'home':home}
#调用mongo对象,完成insert
client=MongoClient('localhost',27017)
db=client.py3
db.stu.insert_one(doc)
print 'ok'
except Exception,e:
print e
- 创建mongodb_insert2.py文件,增加多条文档对象
#coding=utf-8
from pymongo import *
try:
# 构造json对象
doc1={'name':'hr','home':'thd'}
doc2={'name':'mnc','home':'njc'}
doc=[doc1,doc2]
#调用mongo对象,完成insert
client=MongoClient('localhost',27017)
db=client.py3
db.stu.insert_many(doc)
print 'ok'
except Exception,e:
print e
查询
- 创建mongodb_find1.py文件,查询一条文档对象
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
doc=db.stu.find_one()
print '%s--%s'%(doc['name'],doc['hometown'])
except Exception,e:
print e
- 创建mongodb_find2.py文件,查询多条文档对象
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
cursor=db.stu.find({'hometown':'大理'})
for doc in cursor:
print '%s--%s'%(doc['name'],doc['hometown'])
except Exception,e:
print e
修改
- 创建mongodb_update1.py文件,修改一条文档对象
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
db.stu.update_one({'gender':False},{'$set':{'name':'hehe'}})
print 'ok'
except Exception,e:
print e
- 创建mongodb_update2.py文件,修改多条文档对象
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
db.stu.update_many({'gender':True},{'$set':{'name':'haha'}})
print 'ok'
except Exception,e:
print e
删除
- 创建mongodb_delete1.py文件,删除一条文档对象
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
db.stu.delete_one({'gender':True})
print 'ok'
except Exception,e:
print e
- 创建mongodb_delete2.py文件,删除多条文档对象
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
db.stu.delete_many({'gender':False})
print 'ok'
except Exception,e:
print e
练习:
- 使用python向集合t3中插入1000条文档,文档的属性包括_id、name
- _id的值为0、1、2、3...999
- name的值为'py0'、'py1'...
-
查询显示出_id为100的整倍数的文档,如100、200、300...,并将name输出
-
插入数据代码如下
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
col=db.t3
for index in range(1000):
col.insert_one({'_id':index,'name':'py%s'%index})
print 'ok'
except Exception,e:
print e
- 查询代码如下
#coding=utf-8
from pymongo import *
try:
client=MongoClient('localhost',27017)
db=client.py3
col=db.t3
cursor=col.find({'$where':'function(){return this._id%100==0;}'},{'_id':0,'name':1})
for item in cursor:
print item['name']
except Exception,e:
print e