所以我的mongodb中有一些产品在下面列出
- 圣诞老人糖果
- 赫利甜
- 优质甜味
现在我得到的搜索是小写的,有时可能有特殊字符或没有特殊字符。那么,如何构建一个能够准确给出输出的查询呢?例如,如果用户在我的mongodb中输入了">quality-sweet",那么它应该与">quality-speetERLEYS SWEET",那么它应该匹配">HERLEYS SWEET 我有上面的查询,它可以使用大写或小写,但如果用户正在搜索类似"herleys-sweet"的内容,那么它就不起作用。db.product.find({"Product":re.compile('^' + re.escape(pr) + '$',re.IGNORECASE)})
您可以使用re.sub()
函数将特殊字符替换为其他字符。
你可以有这样的东西:
db.product.find({"Product":re.compile('^' + re.sub('[<list of special characters>]', '<string to replace with>', pr) + '$',re.IGNORECASE)})
例如:
创建特殊字符列表:
[-_~!\/^$%]
选择用什么来替换特殊字符。可以是空间
' '
或任何.*
。
然后,你会有:
db.product.find({"Product":re.compile('^' + re.sub('[-_~!\/^$%]', '.*', pr) + '$',re.IGNORECASE)})