刚开始使用密码。试图了解处理这种情况的最佳方法。我需要根据几个搜索字段(并不总是存在)查询数据库。想知道处理它的最佳方法是什么。例如,我从html post request
收集数据storeName = request.form['storeName']
storeCountry = request.form['storeCountry']
storeState = request.form['storeState']
storeCity = request.form['storeState']
我正在使用flask框架,所以用py2neo定义了这个函数来处理搜索字段。不确定我是否正确但如果所有字段都设置正确,希望这样的事情应该可以正常工作
def get_search_results(skipNumber,limitNumber, storeName, storeCountry,storeState, storeCity):
query = """
MATCH (store:store) WHERE store.name = {storeName}
MATCH (store:store)-[:IS_IN_COUNTRY]->(c:Country) WHERE c.name = {storeCountry}
MATCH (store:store)-[:IS_IN_STATE]->(s:State) WHERE s.name = {storeState}
MATCH (store:store)-[:IS_IN_CITY]->(ct:City) WHERE ct.name = {storeCity}
RETURN user SKIP {skip} LIMIT {limit}
"""
return graph.cypher.execute(query, skip=skipNumber, limit=limitNumber, storeName=storeName, storeCountry=storeCountry, storeState=storeState, storeCity=storeCity)
我想处理用户只提交一个或两个字段的情况。
例如
1.如果用户只提交商店名称,那么我应该能够返回具有该商店名称的所有节点
2.如果用户只提交商店名称和国家/地区。返回该国家/地区的所有商店节点
3.如果用户只提交商店名称,国家和州。返回该国家/地区的所有商店节点和状态
是否可以编写一个通用的密码查询来处理这种情况,即忽略没有设置字段或者是None的情况,或者我需要编写不同的查询来处理每种情况?