tfse-admin-api-v0.2/Board/board_db.py

177 lines
4.8 KiB
Python

import pymongo
DB_CLI = 'mongodb://{}:{}@{}:{}'
DB_SETTING = {
"TFSE": {"user": "root", "pass": "sromitdTW569kC#M", "host": "116.63.130.34", "port": "27018"},
"ADMIN": {"user": "root", "pass": "RYIHrqml#LSW6#!*", "host": "116.63.130.34", "port": "27020"}
}
def FIND_DATA_COUNT(param1, param2, param3, param4):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
Returns:
num: list 符合条件的数量
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
num = collection.find(param4).count()
client.close()
return num
def FIND_DATA(param1, param2, param3, param4):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
Returns:
records: list 符合条件的数据
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
records = list(collection.find(param4, {'_id': False}))
client.close()
return records
def FIND_DATA_FILTER(param1, param2, param3, param4, param5):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
param5: obj 显示字段/不显示字段
Returns:
records: list 符合条件的数据
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
records = list(collection.find(param4, {**{'_id': False}, **param5}))
client.close()
return records
def FIND_DATA_FILTER_SORT_LIMIT(param1, param2, param3, param4, param5, param6, param7):
"""
根据查询条件查询符合条件的所有数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
param5: obj 显示字段/不显示字段
param6: str 排序
param7: int 限制返回条数
Returns:
records: list 符合条件的数据
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
records = list(collection.find(param4, {**{'_id': False}, **param5}).sort(param6).limit(param7))
client.close()
return records
def UPSERT_DATA(param1, param2, param3, param4, param5):
"""
更新插入数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: obj 数据集
param4: obj 查询条件
param5: obj 插入数据
Returns:
info: 更新结果
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
res = collection.update_one(param4, {"$set": param5}, upsert=True)
info = res.raw_result['updatedExisting']
client.close()
return info
def INSERT_DATA(param1, param2, param3, param4):
"""
插入一条数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: str 数据集
param4: obj 插入数据
Returns:
True 执行成功
False 执行失败
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
collection.insert_one(param4)
return True
def INSERT_DATA_MANY(param1, param2, param3, param4):
"""
插入多条数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: str 数据集
param4: obj 插入数据
Returns:
True 执行成功
False 执行失败
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
collection.insert_many(param4)
client.close()
return True
def REMOVE_COLLECTION(param1, param2, param3):
"""
清空数据表里的数据
Parameters:
param1: str 服务器
param2: str 数据库
param3: str 数据集
"""
db = DB_SETTING[param1]
client = pymongo.MongoClient(DB_CLI.format(db['user'], db['pass'], db['host'], db['port']))
collection = client[param2][param3]
collection.remove()
client.close()
return True