Python笔记--pymongo模块

导入pymongo模块

import pymongo

初始化参数
host = '10.0.0.2'  
port = 27017  
database = 'dbtest'  
collection = 'tabletest'  
username = 'test'  
password = '123456'  
clint = "mongodb://%s:%d"%(host,port) 
连接到mongo数据库服务器

mg_client = pymongo.MongoClient(clint)

显示mongo数据库列表

print(mg_client.list_database_names())

连接到指定的mongo数据库

mg_database = mg_client[database]
注意:在mongoDB中,数据库只有在内容插入后才会创建 ,即数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。

显示mongo数据库数据集列表

print(mg_database.list_collection_names())

连接mongo数据库指定数据集

mg_collection = mg_database[collection]
意:在mongoDB 中,集合只有在内容插入后才会创建 ,即创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

向mongo数据库插入数据
  • 向数据集插入单个dict数据,如果成功返回插入数据的ID
mydict = { "key": "1", "value": "b" }  
result = mg_collection.insert_one(mydict)  
print(result.inserted_id)  
  • 向mongo数据集插入多个dict的列表,如果成功返回多个ID
mylist = []  
for key,value in enumerate('abc'):  
    mylist.append(dict(zip(('key','value'),(key,value))))  
result = mg_collection.insert_many(mylist)  
print(result.inserted_ids)  
  • 为插入mongo数据集的多个数据指定ID
mylist = []  
for key,value in enumerate('efg'):  
    mylist.append(dict(zip(('_id','key','value'),(key,key,value))))  
result = mg_collection.insert_many(mylist)  
print(result.inserted_ids)  
从mongo数据库查询数据
  • 从mongo数据库查询一条纪录
result = mg_collection.find_one()  
print(result)  
  • 从mongo数据集查询所有数据
result = mg_collection.find()  
for item in result:  
    print(item)
  • 使用find()方法查询指定字段的数据
    将需要返回的字段对应值设置为1即可。
    注意:除了"_id",你不能在一个对象中同时指定 0 和 1,如果你设置了一个字段为 0,则其他都为 1,反之亦然, 同时指定了 0 和 1 则会报错
result = mg_collection.find({},{'_id':0,'key':1,'value':1})  
for item in result:  
    print(item)  
  • 在 find() 中设置参数来过滤数据
    查询条件用dict表示
result = mg_collection.find({'key':1},{'_id':0,'key':1,'value':1})  
for item in result:  
    print(item) 
  • 返回指定条数记录
result = mg_collection.find().limit(3)  
for item in result:  
    print(item)  
mongoDB使用sort对查询结果进行排序

sort() 方法第一个参数为要排序的字段,第二个字段指定排序规则,1 为升序,-1 为降序,默认为升序。

result = mg_collection.find().sort('value',-1)  
for item in result:  
    print(item) 
修改记录
  • 使用update_one() 方法修改文档中的一条记录
    该方法第一个参数为查询的条件,第二个参数为要修改的字段。
    如果查找到的匹配数据多于一条,只会修改第一条。
query = {'key':1}  
newvalue = { "$set": { "value": "B" } }  
result = mg_collection.update_one(query,newvalue)  
print(result.matched_count,result.modified_count,result.upserted_id,result.raw_result)  
  • 使用 update_many()修改匹配上的所有记录
query = {'key':2}  
newvalue = { "$set": { "value": "C" } }  
result = mg_collection.update_many(query,newvalue)  
print(result.matched_count,result.modified_count,result.upserted_id,result.raw_result)
删除数据
  • delete_one()方法来删除一条记录
    该方法第一个参数为查询对象 。
query = {'key':2}  
result = mg_collection.delete_one(query)  
print(result.deleted_count,result.raw_result) 
  • delete_many() 方法删除多个文档
    该方法第一个参数为查询对象,指定要删除哪些数据。
query = {'key':0}  
result = mg_collection.delete_many(query)  
print(result.deleted_count,result.raw_result) 
  • delete_many() 方法如果传入的是一个空的查询对象,则会删除集合中的所有文档
    空查询对象用{}表示 。
result = mg_collection.delete_many({})  
print(result.deleted_count,result.raw_result) 
使用 drop() 方法来删除一个集合

删除成功 drop() 返回 true,删除失败(集合不存在)则返回 false。

result = mg_collection.drop()  
print(result)```
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值