pymongo三种连接方式
记录一下pymongo的三种连接方式,避免踩坑,三种方式的区别根本是 账号权限问题第一种:管理员账号登录,admin数据库中的账号 such as:root-root注意:admin账号是先校验账号密码,然后再切换数据库from pymongo import MongoClientclient = MongoClient('mongodb://{0}:{1}@{2}:{3}'.format(MON
·
记录一下pymongo的三种连接方式,避免踩坑,三种方式的区别根本是 账号权限问题
第一种:
管理员账号登录,admin数据库中的账号 such as:root-root
注意:admin账号是先校验账号密码,然后再切换数据库
from pymongo import MongoClient
client = MongoClient('mongodb://{0}:{1}@{2}:{3}'.format(
MONGODB_ACCOUNT, MONGODB_PASS, MONGODBIP, MONGODBPORT))
db = client[DATABASE]
第二种:
数据库下的专属账号,不具备其他数据库登录权限
先连接mongo,选择数据库,最后再单独校验账号密码
import pymongo
# 先切换数据库
client = pymongo.MongoClient(ip, port)
db = self.client[db]
db.authenticate(user, password)
第三种:
数据库下的专属账号,不具备其他数据库登录权限
mongoengine的方式, 常用于web框架中
from mongoengine import *
connect(DataBase, host = MongodbIP, username =Mongodb_account, password = Mongodb_pass)
# 需要自定义mongo中表的模型
class File(Document):
"""MongoDb存储文件
Args:
Document ([type]): [description]
"""
air_line_id = StringField(required = True) # id
file_name = StringField() # 文件名称
filemd5 = StringField(required = True) # 文件名称md5值
kml = FileField() # 照片
published = DateTimeField(default=datetime.datetime.now) # 创建时间
meta = {'collection': 'kml_file','indexes': [
{'fields': ('air_line_id', 'filemd5'), 'unique': True}
]}
def _test():
# 以对象的形式操作数据库
if File.objects(Q(air_line_id=air_line_id) & Q(filemd5=_filemd5)):
pass
更多推荐
已为社区贡献1条内容
所有评论(0)