为了能够PyCharm中使用MongoDB,需要先引入MongoDB第三方库,具体的引入方法如下:
第一:先配置MongoDB插件
1 打开PyCharm,单击 左上角“file”→“settings” ,如下图
2 Plugins-->Browse repositories-->Mongo-->Install
第二步:加入包:pymongo
第三步:开始练习
#引入MonogoClient包 from pymongo import MongoClient from bson.objectid import ObjectId #连接数据库 #数据库需要提供一个地址和端口即可 conn=MongoClient('localhost',27017) #conn=MongoClient('Mongodb://localhost:27017/') #创建数据库 #Mongodb不需要提前创建好数据库,而是直接使用,如果发现没有则自动创建 #会创建一个testDB的数据库,但是在没有插入数据的时候,该数据库在管理工具里面看不到 db=conn.testdb #插入数据 #单条记录插入 db.col.insert({'name':'aa','province':'SX','age':25}) #多条记录插入 db.col.insert([ {"name":'yanying','province':'江苏','age':25}, {"name":'张三','province':'浙江','age':24}, {"name":'张三1','province':'浙江1','age':25}, {"name":'张三2','province':'浙江2','age':26}, {"name":'张三3','province':'浙江3','age':28}, ]) #查询数据 #使用find_one()来查询一条记录 db.col.find_one() #查询所有 #如果需要查询出所有的记录,则可以使用db.col.find()。但是查出来的十一个结果资源集 for item in db.col.find(): print(item) #条件查询 for item in db.col.find({'name':"yanying"}): print(item) #统计查询 #上面的代码可以统计出所有的记录数量 db.col.find().count() #根据_id查询数据 #_id是mongodb自动生成的id,其类型为ObjectId,想要使用就需要转换类型 #需要引入库:ObjectId #这样就可以直接使用_id进行查询了 collection.find_one({'_id':ObjectId('592550e5d92fac0b8c449f87')}) #结果排序 #只需要将排序的字段放入sort方法即可,Mongodb默认为升序 db.col.find().sort('age') #更新数据 #更新数据只需要一个条件和需要更新的数据即可 db.col.update({'_id':ObjectId('592550e5d92fac0b8c449f87')},{'$set':{'name':'王二麻子'}}) #删除数据 #数据删除使用remove()方法,如果方法带条件,则删除指定条件的数据,否则删除全部 #删除name为王二麻子的用户 db.col.remove({'name':'王二麻子'}) #删除全部数据(慎用) #db.col.remove()
第四步:运行
在运行中如果出现如下错误:
是因为在PyCharm中调用MongoDB数据库时,由于没有启动本地的MongoDB服务引起。
解决方案:
首先通过win+R打开命令行窗口,输入cmd(如下图)
打开命令行窗口
用cd命令打开mongod.exe所在的目录,并输入mongod.exe --nojournal --dbpath .(注意–dbpath后面有个点)
如果出现‘ [initandlisten] waiting for connections on port 27017’提示说明服务器已经启动成功
重新在PyCharm中运行程序(运行成功)
{'_id': ObjectId('5be7ff56ec882c935834bcad'), 'name': 'aa', 'province': 'SX', 'age': 25}
{'_id': ObjectId('5be7ff57ec882c935834bcae'), 'name': 'yanying', 'province': '江苏', 'age': 25}
{'_id': ObjectId('5be7ff57ec882c935834bcaf'), 'name': '张三', 'province': '浙江', 'age': 24}
{'_id': ObjectId('5be7ff57ec882c935834bcb0'), 'name': '张三1', 'province': '浙江1', 'age': 25}
{'_id': ObjectId('5be7ff57ec882c935834bcb1'), 'name': '张三2', 'province': '浙江2', 'age': 26}
{'_id': ObjectId('5be7ff57ec882c935834bcb2'), 'name': '张三3', 'province': '浙江3', 'age': 28}
{'_id': ObjectId('5be7ff57ec882c935834bcae'), 'name': 'yanying', 'province': '江苏', 'age': 25}