pymongo的使用

经过上一篇博客的阅读学习,咱们对于MongoDB的原生数据库操做语句已经用了大致上的掌握,那么在咱们的程序中用什么来帮助咱们对数据库进行操做呢?python

没错!就是咱们的pymongo模块了数据库

pip3 install pymongo安装json

python -m pip install pymongo 上面执行报错的能够试试这一条命令(前提环境变量配置对应了)学习

连接MongoDB

import pymongo

mongo_conn=pymongo.MongoClient(host="127.0.0.1",port=27017)
mongo_db = mongo_conn['demo']

res=mongo_db.student.insert_one({"name":"瞎子","age":20})
print(res)
#<pymongo.results.InsertOneResult object at 0x000000A76F12FF08>
print(res.inserted_id)
#5b7e3132ec882c1c285372cd


res=mongo_db.student.insert_many([{"name":"亚索"},{"name":"石头人"}])
print(res)
#<pymongo.results.InsertManyResult object at 0x000000B934E4FEC8>
print(res.inserted_ids)
#[ObjectId('5b7e31c3ec882c2194a18512'), ObjectId('5b7e31c3ec882c2194a18513')]

注意插入一条数据和多条数据执行结果返回值的区别inserted_id,inserted_idsui

res=mongo_db.student.find({"name":"小强"})
for i in res:
    print(i)
'''
{'_id': ObjectId('5b7e15decc299a1858801264'), 'name': '小强',  'gender': '', 'age': 18.0}

'''
res=mongo_db.student.find_one()
print(res)
'''
{'_id': ObjectId('5b7e15b3cc299a1858801263'), 'name': '元少',  'gender': '', 'age': 18.0}

'''

res=mongo_db.student.update_one({"name":"亚索"},{"$set":{"age":888}})
print(res.raw_result)
#{'n': 1, 'nModified': 0, 'ok': 1.0, 'updatedExisting': True}

看到这里,是否是感受跟原生的操做语句大差不差的呢?没错!能够说是彻底同样的。因此直接看我上一篇博客,带你快速入门MondoDB操做哦~~~spa

res=mongo_db.student.delete_one({"name":"石头人"})
print(res.deleted_count)#获取删除的条数
print(res.acknowledged)#True 这个参数能够用来判断执行是否成功,返回结果是True或者False

干货

细心的小伙伴应该对MongoDB中自动生成的_id感到一丝疑惑吧,而且你想经过_id来查询数据的时候,会发现根本查不到,怎么试都不行,明明字符串写的如出一辙。code

缘由就在于数据的_id对应的是ObjectId类型,咱们单纯用字符串想去匹配它是不行的blog

这个时候就须要借助一个json的二哥bson模块了~~~ip

import pymongo

mongo_conn=pymongo.MongoClient(host="127.0.0.1",port=27017)
mongo_db = mongo_conn['demo']

from bson import ObjectId
res=mongo_db.school.find_one({"_id":ObjectId("23rwahd83ruieajf93rea")})

这样就能够畅通无阻的查询了,想怎么查就怎么查。字符串

这是在存数据时须要注意的,在取数据进行应用的时候也须要注意这个坑,一般是对取出的数据立马对_id进行str()转一下,或者直接不要_id项

res=mongo_db.student.find_one({"name":"小强"},{"_id":0})

查询数据时,对于你不想获取和展现的数据,能够在查询条件后指定忽略的字段状态表示为0,这样查询出来的结果就会自动帮你去掉你不想要的数据对,逗号隔开的各个条件之间是与的关系

相关文章
相关标签/搜索