Python3.x中使用MongoDB数据库的简单方法-------PyCharm

为了能够PyCharm中使用MongoDB,需要先引入MongoDB第三方库,具体的引入方法如下:

第一:先配置MongoDB插件

1 打开PyCharm,单击  左上角“file”→“settings” ,如下图

   

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}
 

猜你喜欢

转载自blog.csdn.net/bao_120973681/article/details/83960395
今日推荐