60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
import pymongo
|
||
|
||
DB_HOST = "116.63.130.34"
|
||
DB_PASS = "UTlC9cCoglD1cI1*"
|
||
DB_USER = "root"
|
||
DB_PORT = "27021"
|
||
CLIENT = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT))
|
||
|
||
|
||
def FIND_SINGLE_COLUMN_BY_REQ(param1, param2, param3, param4):
|
||
"""
|
||
查询符合条件的第一条数据的某个制定字段值
|
||
Parameters:
|
||
param1: str 数据库
|
||
param2: str 数据表
|
||
param3: dict 查询条件
|
||
param4: str 一个指定查询字段
|
||
Returns:
|
||
record: 查询结果为空,返回None; 查询结果正常,返回查询结果的第一条数据;
|
||
"""
|
||
collection = CLIENT[param1][param2]
|
||
column = {**{'_id': False}, **{param4: 1}}
|
||
record = list(collection.find(param3, column))
|
||
return None if record == [] else record[0][param4]
|
||
|
||
|
||
def FIND_SINGLE_DATA_BY_REQ(param1, param2, param3, param4):
|
||
"""
|
||
查询符合条件的第一条数据
|
||
Parameters:
|
||
param1: str 数据库
|
||
param2: str 数据表
|
||
param3: dict 查询条件
|
||
param4: list 查询字段
|
||
Returns:
|
||
record: 查询结果为空,返回False; 查询结果正常,返回查询结果的第一条数据;
|
||
"""
|
||
collection = CLIENT[param1][param2]
|
||
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
|
||
record = list(collection.find(param3, columns))
|
||
return False if record == [] else record[0]
|
||
|
||
|
||
def FIND_SINGLE_DATA_BY_REQ_WITH_SORT(param1, param2, param3, param4, param5):
|
||
"""
|
||
查询符合条件的第一条数据
|
||
Parameters:
|
||
param1: str 数据库
|
||
param2: str 数据表
|
||
param3: dict 查询条件
|
||
param4: list 查询字段
|
||
param5: dict 排序条件 例如 {"name": 1} 表示按照name字段正序返回
|
||
Returns:
|
||
record: 查询结果为空,返回False; 查询结果正常,返回查询结果的第一条数据;
|
||
"""
|
||
collection = CLIENT[param1][param2]
|
||
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
|
||
record = list(collection.find(param3, columns).sort(list(param5.keys())[0], list(param5.values())[0]).limit(1))
|
||
return False if record == [] else record[0]
|