python操作MongoDB数据库需要用到pymongo的库。
pip install pymongo
使用时需要先导入库。
import pymongo
建立连接
import pymongo client =pymongo.MongoClient(host="localhost",port=27017)
指定数据库
db=client['joe']
指定集合
collection=db['age']
操作
查找文档
由于查找到的文档是一个迭代的对象,所以可用__next__()方法一个一个的取,同样也可以用for循环来操作,这里采用第二种。
documents=collection.find() for data in documents: print(data)
增加文档
这里增加的文档要严格以类json的数据格式,以键值对的形式添加数据。
collection.insert({'hellon':30}) #添加一条 collection.insert([{"one":12},{"two":13}]) #添加多条
删除文档
collection.remove({"one":12}) #删除一条 collection.remove({"hellon":30},{"two":13}) #删除多个数据,注意若库中存在两条{"hello":30}的数据会都删掉 collection.remove({"one":12},multi=False) #multi参数指定是否要删除多条数据,False代表删除一条
修改文档
collection.update({"one":12},{"name":"joe"}) #更新所有数据 collection.update({"one":12},{"name":"joe"},multi=False)#更新一条数据,multi含义代表是否更新多条
以上的方法在python3中官方已经不推荐使用,但是现在也是可已使用的,取而代之的是下面的方法,用法与上面的没有太大差别。
查找
find_ong() #查找一条文档 find_many()#查找多条文档
增加
insert_one()#插入一条文档 insert_many()#插入多条文档
删除
delete_one()#删除一条文档 delete_many()#删除多条文档
修改
update_one()#更新一条文档 update_many()#更新多条文档
综合举例
# -*- coding: utf-8 -*- # @Time : 2018/9/8 10:27 # @Author : Joe # @Email : 18842114496@163.com # @File : 20180908.py # @Software: PyCharm # 将MongoDB的find, insert, update, remove方法封装成类 import pymongo class MongoDB: def __init__(self,db_name): self.client=pymongo.MongoClient() self.db=self.client[db_name] def find(self,collection_name): document_data=self.db[collection_name].find() for data in document_data: print(data) def insert(self,collectionn_ame,documents,insert_many=False): if insert_many==False: self.db[collectionn_ame].insert_one(documents) else: self.db[collectionn_ame].insert_many(documents) def update(self,collection_name,documents_updated,document_update): self.db[collection_name].update(documents_updated,document_update) def remove(self,collection_name,delete_data,delete_many=False): if delete_many==False: self.db[collection_name].delete_one(delete_data) else: self.db[collection_name].delete_many(delete_data) if __name__=='__main__': mm=MongoDB('joe') mm.find('age') one={"one":"Jack"} many=[{"two":"Alex"},{"three":"Jerray"},{"four":"Helln"}] mm.insert('name',one,insert_many=False) mm.insert('name',many,insert_many=True) up1={"three":"Jerray"} up2={"age":20} mm.update('name',up1,up2) delete={"two":"Alex"} mm.remove('name',delete,delete_many=True)