177 lines
4.8 KiB
Python
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
|