アドレスを検索するMongoDBクエリがあります。問題は、ユーザーが誤って余分な空白を追加した場合、クエリでアドレスが見つからないということです。たとえば、ユーザーが123 Fakeville St
の代わりに123 Fakeville St
と入力した場合、クエリは結果を返しません。MongoDBクエリで複数の空白文字を無視する
おそらく$regex
を使用してこの問題に対処する簡単な方法はありますか?私は、スペースは家の番号(123)と通りの名前(Fakeville)の間で無視する必要があると思う。私のクエリは、このように設定されています
@app.route('/getInfo', methods=['GET'])
def getInfo():
address = request.args.get("a")
addressCollection = myDB["addresses"]
addressJSON = []
regex = "^" + address
for address in addressCollection.find({'Address': {'$regex':regex,'$options':'i'} },{"Address":1,"_id":0}).limit(3):
addressJSON.append({"Address":address["Address"]})
return jsonify(addresses=addressJSON)
スーパーの詳細情報を参照してください。ありがとうございました。これは機能します。 LuceneとElasticsearchを調べます。 – mapr