¿Cómo busco las fechas registradas como una matriz en Json?
¿Cómo busco las fechas registradas como una matriz en Json? (PostgreSQL es DB.) A continuación se muestra el código relevante.
##### 1. Model #####
class Business(db.Model):
__tablename__ = 'business'
id = db.Column(db.Integer, primary_key=True)
sales = db.Column(JSON)
##### 2. Data #####
id=1
sales={'time': ['10:00', '19:00']},
##### 3. View Query #####
# filter var
filter_val = request.json['filter']['value']
# basic query
bQuery = Business.query
# Filter query
if filter_val['sales']['time'][0]:
bQuery = bQuery.filter(Business.sales['time'][0].astext.ilike('%' + filter_val['sales']['time'][0] + '%'))
if filter_val['sales']['time'][1]:
bQuery = bQuery.filter(Business.sales['time'][1].astext.ilike('%' + filter_val['sales']['time'][1] + '%'))
# result query
business = bQuery.order_by(Business.id.desc()).paginate(pageCurrent, per_page=per_page, error_out=False)
Valor del filtro: filter_val ['sales'] ['time'] [n]
Json matriz de columnas de la tabla: business.sales ['time'] [n]
He creado una consulta de filtro en el área de visualización,
filter_val ['ventas'] ['hora'] [0] ~ [1]
Business.sales ['time'] [0] ~ [1] debe ser exactamente igual, pero se buscarán.
Sin embargo, esta no es la búsqueda de fecha que quiero.
Esto es lo que quiero:
Busque un valor de filtro en una matriz en una columna compuesta por json. La condición de búsqueda de filtro deseada es Business.sales ['time'] [0]> = filter_val ['sales'] ['time'] [0] Business.sales ['ventas'] ['tiempo'] [1] <= filter_val ['ventas'] ['tiempo'] [1]¿Hay una buena manera? Quiero saber un ejemplo simple. Gracias