pymongo 提供了mongdb和python交互的所有方法
安装方式: pip install pymongo
数据库和集合能够自动创建
xfrom pymongo import MongoClientclient = MongoClient(host,port) # 如果是本地连接host,port参数可以省略collection = client[db名][集合名]# collection = client.db名.集合名 # 与上边用法相同 xxxxxxxxxxfrom pymongo import MongoClientfrom urllib.parse import quote_plususer = 'python' # 账号password = 'python' # 密码host = '127.0.0.1' # hostport = 27017 # porturi = "mongodb://%s:%s@%s" % (quote_plus(user), quote_plus(password), host)# quote_plus函数:对url进行编码# uri = mongodb://python:python@127.0.0.1client = MongoClient(uri, port=port)collection = client.db名.集合名insert可以批量的插入数据列表,也可以插入一条数据
xxxxxxxxxxcollection.insert({一条数据})collection.insert([{数据一},{数据二}])返回插入数据的_id
xxxxxxxxxxret = collection.insert({"name":"test10010","age":33})print(ret)返回ObjectId对象构成的列表
xxxxxxxxxxitem_list = [{"name":"test1000{}".format(i)} for i in range(10)]rets = collection.insert(item_list)print(rets)for ret in rets: print(ret)接收一个字典形式的条件,返回字典形式的整条数据 如果条件为空,则返回第一条
xxxxxxxxxxret = client.test.test.find_one({'name': 'test10001'})print(ret) # 包含mongodb的ObjectId对象的字典_ = ret.pop('_id') # 清除mongodb的ObjectId对象的k,vprint(ret) 返回所有满足条件的结果,如果条件为空,则返回全部 结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取
xxxxxxxxxxrets = collection.find({"name":"test10005"}),for ret in rets: print(ret)for ret in rets: #此时rets中没有内容 print(ret) xxxxxxxxxxdata = {'msg':'这是一条完整的数据1','name':'哈哈'}client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True) xxxxxxxxxxdata = {'msg':'这是一条完整的数据2','name':'哈哈'} # 该完整数据是先查询后获取的client.test.test.update({}, {'$set':data}, multi=True, upsert=True) xxxxxxxxxxdata = {'msg':'指定只更新msg___1'}client.test.test.update({}, {'$set':data}, upsert=True) xxxxxxxxxxdata = {'msg':'指定只更新msg___2'}client.test.test.update({}, {'$set':data}, multi=True, upsert=True) xxxxxxxxxxcollection.delete_one({"name":"test10010"}) xxxxxxxxxxcollection.delete_many({"name":"test10010"})查看pymongo官方文档或源代码 http://api.mongodb.com/python/current/