1.准备工作要用Python操作MongoDB,需要用到pymongo,首先就是要安装pymongo,下面是在Pycharm安装pymongo包的过程。
在pymongo包安装完成之后会出现
准备工作完成
2. 实操阶段
(1)导包
from pymongo import MongoClient
(2)连接MongoDB数据库
from pymongo import MongoClient
class Test:
def __init__(self):
self.client=MongoClient(host='localhost',port=27017)
print(self.client)
if __name__ == '__main__':
test = Test()
会出现下面的结果:
(2)查看数据库
class Test:
def getDBs(self):
self.client.list_database_names()
for db in self.client.list_database_names():
print(db)
if __name__ == '__main__':
test = Test()
test.getDBs()
获取的数据库为:
(3)创建集合
class Test:
def creatColl(self):
bigdata=self.client['bigdata'] #创建数据库bigdata
bigdata.create_collection('student')#创建集合student
if __name__ == '__main__':
test = Test()
#创建集合
#test.creatColl()
接下来再查看现在数据库
test.getDBs()
(4)获取集合
class Test:
def getColl(self):
self.bigdata=self.client['bigdata']
collections=self.bigdata.list_collections()
for coll in collections:
print(coll)
if __name__ == '__main__':
test = Test()
#获取集合
#test.getColl()
(5)插入一条数据
class Test:
def inserOne(self):
self.bigdata=self.client['bigdata']
comment=self.bigdata['student']
newDoc={"name":"张三","age":19,"score":[80,78,85]}
comment.insert_one(newDoc)
if __name__ == '__main__':
test = Test()
#插入一条记录
#test.inserOne()
(6)查询文档
class Test:
def findDoc(self):
self.bigdata=self.client['bigdata']
comment=self.bigdata['student']
documents=comment.find()
for document in documents:
print(document)
if __name__ == '__main__':
test = Test()
#查看文档内容
test.findDoc()
运行结果如下:
(7) 更新文档
class Test:
def updateDoc(self):
self.bigdata=self.client['bigdata']
comment=self.bigdata['student']
comment.update_one({"name":"张三"},{"$set":{"age":20}})
if __name__ == '__main__':
test = Test()
#更新文档
#test.updateDoc()
将姓名为张三的年龄改为20,查看一下文档,看是否修改成功。
test.findDoc()
(8)删除文档
class Test:
def deleteDoc(self):
self.bigdata=self.client['bigdata']
comment=self.bigdata['student']
comment.delete_one({"name":"张三"})
if __name__ == '__main__':
test = Test()
#删除文档
test.deleteDoc()
test.findDoc() #文档内容为空,表示删除成功
(9)删除集合
class Test:
def dropColl(self):
bigdata=self.client['bigdata']
bigdata.drop_collection('student')
if __name__ == '__main__':
test = Test()
test.dropColl()