#encoding=utf-8
#pymongo版本为1.11
#数据库“操作
import pymongo
from pymongo import ASCENDING, DESCENDING
con=pymongo.Connection('localhost',27017) #建立连接
db1=con.db_test_table #建立数据库
db1.authenticate('admin','admin') #登录用户名和密码
db1.drop_collection('table_drop') #删除表
db1.logout() #退出
print db1.collection_names() #查看所用表
print db1.connection #查看连接
print db1.name #查看数据库名称
db1.create_collection('ddd') #建立表
db1.command('logout') #执行命令
print db1.error() #返回上次操作的错误
db1.eval(code, *args) #执行mongodb里面的javascript表达式 print db1.last_status() #返回上次操作的状态
print db1.previous_error() #返回前一个错误
print db1.profiling_info() #mongodoc里面的程序概要信息 print db1.profiling_level() #mongodoc里面的程序概要信息等级
db1.add_user('beam','123456') #增加用户
db1.remove_user('beam') #删除用户 db1.reset_error_history() #重置历史错误
print dir(db1)
#表“的操作
table1=db1.table_test
print dir(table1)
print table1.database #表的数据库
print table1.count() #表的个数
print table1.full_name #表的全名db_test_table.table_test print table1.options() #表的设置
#key=u'ddd'
#table1.create_index(key,deprecated_unique=key) #建立唯一键值 db2=con.db_test_distinct table2=db2.table1 table2.create_index([("partno",DESCENDING),('age',DESCENDING)],deprecated_unique=("partno",'age'))
#建立多个索引的唯一
table2.insert({'partno':'max-000','name':'jack','age':80})
#设置唯一键值后,再次插入重复,不会插入,并无提示
table2.insert({'partno':'max-001','name':'jack','age':20})
table2.insert({'partno':'max-002','name':'jack','age':30})
table2.insert({'partno':'max-003','name':'jack','age':40})
table2.insert({'partno':'max-004','name':'jack','age':50})
table2.insert({'partno':'max-005','name':'jack','age':60})
table2.insert({'partno':'max-006','name':'jack','age':70})
table2.insert({'partno':'max-007','name':'jack','age':20})
print table2.distinct('name') #返回所有key 不重复的记录 #db2.create_collection('ttt')
#db2.ttt.drop() #删除表
#db2.drop_collection('ttt')
table2.create_index('name')
for i in table2.find({'age':20}): #查找所有age=20
print i
print table2.find_one({'age':20}) #查找单个age=20
for i in table2.find().sort('partno'): #查找所有,排序
print i
for i in table2.find().skip(3).limit(5): #忽略3个,留5个
print i
#table2.find_and_modify #table2.drop_index('name_1')
#删除单个索引,要知道索引的名称
#table2.drop_indexes() #删除所有索引
#table2.ensure_index('name')
#检查是否存在些索引,如果不存在则创建,存在则返回None
print table2.index_information() #返回索引信息
#table2.rename('new_name') #表改名
#table2.remove() #删除所有记录
#table2.remove({'age':20}) #删除指定记录 ttt=table2.remove({'age':0},safe=True)
#结果中{u'connectionId': 115, u'ok': 1.0, u'err': None, u'n': 0},‘n’为1,删除成功
print ttt table2.save({'partno':'max-007','name':'jack','age':500})
#插入一条数据
#table2.update({'name':'jack'},{'$set':{'age':800}},multi=True)
#multi=True将更新所有,默认为false,只更新一条
for i in table2.find({'age':{'$gte':30}}):
#'$lt'--'<','$lte'--'<=','$gt'--'>','$gte'--'>=','$nt'--'!='
print i #在表中设置条件查找数据 table2.group() #类似sql的group by
table2.map_reduce() #map和reduce方法
table2.find_and_modify() #查找修改返回对象