python操作mongodb_MongoDB学习笔记:Python 操作MongoDB

Pymongo 安装安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成;数据库相关操作连接及创建数据库importpymongoconnect= pymongo.MongoClient("mongodb://localhost:27017/")mydb= connect ["test"]注意:在...
摘要由CSDN通过智能技术生成

Pymongo 安装

安装pymongo

pip install pymongo

PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成;

数据库相关操作

连接及创建数据库

importpymongo

connect= pymongo.MongoClient("mongodb://localhost:27017/")

mydb= connect ["test"]

注意:在 MongoDB 中,初次创建数据库,数据库在获取内容之前不会真正创建的!

在实际创建数据库(和集合)之前,MongoDB 会一直等待您创建至少有一个文档(记录)的集合(表)。

连接及查看数据库

from pymongo importMongoClient

connect= MongoClient(host='localhost', port=27017, username="root", password="123456")

#connect= MongoClient('mongodb://localhost:27017/', username="root", password="123456")print(connect.list_database_names())

单例模式封装链接

注意:

mongodb的数据库连接池的问题,在创建MongoClient 的时候就已经创建了一个连接池,每一个操作(增删改查等)都会获取一个连接,执行操作后释放连接。

而连接池是不需要我们及时关闭的,我们可以在程序的生命周期中维护一个这样的单例,至于从连接池中拿出的连接,我们也不需要自行关闭。

所以这里self.db实例其实已经是一个现成的连接池了,而且线程安全。内置的连接池默认初始了100个连接,每一个操作(增删改查等)都会获取一个连接,执行操作后释放连接。

最大连接限制最大连接数限制,默认值为 1000000。

如果你需要为进程中支持大量并发MongoDB操作,请增加maxPoolSize:

client = MongoClient(host, port, maxPoolSize=200)

或使其不受限制:

client = MongoClient(host, port, maxPoolSize=None)

一旦池达到最大大小,其他线程就必须等待套接字可用。PyMongo并不限制等待套接字可用的线程数,应用程序有责任在负载高峰期间将其线程池的大小限制为绑定队列。除非waitQueueTimeoutMS定义,否则允许线程等待任何时间长度:

client = MongoClient(host, port, waitQueueTimeoutMS=100)

等待套接字等待时间超过100ms(在此示例中)的线程引发ConnectionFailure。如果限制负载高峰期间的操作持续时间比完成每个操作更为重要,请使用此选项。

另外不要为了每个操作都去创建一个新的MongoClient实例,这是非常低效的。

from pymongo importMongoClientclassMongoDBClient(object):#饿汉式 单例模式

def __new__(cls):if not hasattr(cls, 'instance'):

cls.instance= super(MongoDBClient, cls).__new__(cls)returncls.instance#代理ip Redis 连接池

def __init__(self):

uri= 'mongodb://账号:密码@128.777.244.19:27017/admin'self.mgdb= MongoClient(uri, connect=False, maxPoolSize=2000)defgetMongoClient(self):return self.mgdb

集合相关操作

检查 "customers" 集合是否存在

from pymongo importMongoClient

connect= MongoClient(host='localhost', port=27017, username="root", password="123456")

#connect= MongoClient('mongodb://localhost:27017/', username="root", password="123456")collist=mydb.list_collection_names()if "customers" incollist:print("The collection exists.")

创建名为 "customers" 的集合

importpymongo

connect= pymongo.MongoClient("mongodb://localhost:27017/")

test_db= connect["test"]

mycol= test_db["customers"]

获取数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值