irpas技术客

python 之 MongoDB_qq_37718585

网络投稿 2413

一、pymongo安装

Python连接MongoDB需要MongoDB的驱动,使用pymongo驱动来连接。

1、使用pip来安装pymongo:

$ python3 -m pip3 install pymongo #指定版本 $ python3 -m pip3 install pymongo==3.5.1 #更新pymongo命令 $ python3 -m pip3 install --upgrade pymongo

2、easy_insatll安装

$ python -m easy_install pymongo #更新 $ python -m easy_install -U pymongo

执行结果:

?

二、创建数据库

创建数据库需要使用MongoClient对象,并指定连接的URL地址和要创建的数据库名。

实例:

#连接mongodb myclient = pymongo.MongoClient("mongodb://localhost:27017") #创建数据库 mydb = myclient["mydb"]

三、增、删、改、查等操作

1、增加数据

使用insert_one()和insert_many()函数实现集合数据的插入。

2、查询数据

使用find()和find_one()函数来查询数据库中的数据。

3、修改数据

使用update_one()和update_many()实现更新数据。

4、数据排序

使用sort()函数来对数据排序,1表示升级,-1表示降序。

5、删除数据

使用delete_one()和delete_many()来删除集合中的数据,drop()来删除集合

完整实例:

import pymongo #1、连接mongodb myclient = pymongo.MongoClient("mongodb://localhost:27017") #2、创建数据库 mydb = myclient["mydb"] #判断数据库是否存在 dblist = myclient.list_database_names() if "mydb" in dblist: print("数据库已存在") #创建集合(表) mycol = mydb["my_col"] #判断集合是否存在 collist = mydb.list_collection_names() if "my_col" in collist: print("集合已存在") #3、插入数据 #插入单条文档数据 mydict = {"name":"小明", "sex":"M", "grade":98} x = mycol.insert_one(mydict) print(x) #返回_id字段,即插入文档的属性ID值 print(x.inserted_id) #插入多个文档对象 mydictlist = [ {"name":"小芳", "sex":"F", "grade":98}, {"name":"小丽", "sex":"F", "grade":100}, {"name":"小强", "sex":"M", "grade":59} ] y = mycol.insert_many(mydictlist) #输出所有文档的id值 print(y.inserted_ids) #在终端输入命令查看数据是否插入成功 #use mydb #db.my_col.find() #插入指定_id的多个文档 mydictlist2 = [ {"_id":1, "name":"小明", "sex":"M", "grade":98}, {"_id":2, "name": "小芳", "sex": "F", "grade": 98}, {"_id":3, "name": "小丽", "sex": "F", "grade": 100}, {"_id":4, "name": "小强", "sex": "M", "grade": 59} ] z = mycol.insert_many(mydictlist2) print(z.inserted_ids) #4、查询 #查询一条数据 sel1 = mycol.find_one() #查询集合中所有数据 for i in mycol.find(): print(i) #查询指定字段的数据,find方法内的是查询条件,相当于SQL中select name,sex from my_col; #其中0为不返回显示,1为返回显示 for i in mycol.find({}, {"_id": 0, "name": 1, "sex": 1}): print(i) #除了 _id,你不能在一个对象中同时指定 0 和 1,如果你设置了一个字段为 0,则其他都为 1,反之亦然 #以下实例处理sex字段外,其他字段都返回 for i in mycol.find({}, {"sex": 0}): print(i) #查询符合条件的数据,相当于select * from my_col where name="小明"; myquery = {"name": "小明"} for i in mycol.find(myquery): print(i) #高级查询 #相当于SQL:select * from my_col where grade>60 and grade<100; myquery1 = {"grade": {"$gt":60, "$lt":100}} for i in mycol.find(myquery1): print(i) #正则表达式查询 相当于:select * from my_col where sex = "%F"; myquery2 = {"sex": {"$regex": "^F"}} for i in mycol.find(myquery2): print(i) #返回指定条数,相当于:select * from my_col limit 2; myresult = mycol.find().limit(2) for i in myresult: print(i) #5、更新数据 #第一个参数为查询条件,第二个为修改的数据 #更新一条数据 myquery3 = {"name":"小明"} newvalues = {"$set": {"grade": 100}} mycol.update_one(myquery3, newvalues) for i in mycol.find: print(i) #更新多条数据 myquery4 = {"sex": {"$regex": "^F"}} newvalues1 = {"$set": {"grade": 101}} x = mycol.update_many(myquery4, newvalues1) #modifed_count计算修改的条数 print(x.modifed_count, "文档已修改") #6、数据排序 #第一个参数为要排序的字段,第二个字段指定排序规则,1 为升序,-1 为降序,默认为升序。 #按grade排序 mydoc = mycol.find().sort("grade", -1) #7、删除数据 #该方法第一个参数为查询对象,指定要删除哪些数据 #删除一条数据,删除name为小明的数据 mycol.delete_one(myquery3) #删除多条数据 #删除所有匹配的数据 mycol.delete_many(myquery4) #删除集合中所有文档 mycol.delete_many({}) #删除集合 mycol.drop()


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Python # #mongodb #pymongo实例