PyMongo - 使用变量来 sql 'LIKE' 查询

Posted

技术标签:

【中文标题】PyMongo - 使用变量来 sql \'LIKE\' 查询【英文标题】:PyMongo - Using variables to sql 'LIKE' queriesPyMongo - 使用变量来 sql 'LIKE' 查询 【发布时间】:2019-11-27 06:48:05 【问题描述】:

答案here 适用于使用 PyMongo 搜索包含搜索文本的字段。但仅适用于硬编码字符串值:

 db.houses.find("hid":"$regex": u"9")

那么,如何用变量替换 "9" 的表达式?

def some_func(search_text)
    db.houses.find("hid":"$regex": ??????)

【问题讨论】:

您是说db.houses.find("hid":"$regex": search_text) 不起作用吗? 链接的答案让 cmets 正在寻找这种实现。所以,这个问题是为那些在那个问题上遇到困难的人准备的。 【参考方案1】:

试试这个,

search_text = u"9"
db.houses.find("hid":"$regex": search_text )

【讨论】:

好吧,我的第一个例子把你弄糊涂了。以这种方式放置search_text 并不总是可行的。 @vahdet 来自链接答案提供的 cmets。这是'9' u'9' 应该工作的地方。【参考方案2】:

使用re 模块为您的搜索字符串创建一个正则表达式

import re
search_string = re.compile('9')
db.houses.find('hid': search_string)

您可以使用re 模块中提供的许多选项

【讨论】:

以上是关于PyMongo - 使用变量来 sql 'LIKE' 查询的主要内容,如果未能解决你的问题,请参考以下文章

在T-SQL中使用LIKE与存储过程完全匹配?

SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑

LIKE 语句中带有变量的 SQL:无效的列索引 [重复]

PLSQL连接Oracle使用like模糊查询中文时返回结果为空

SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑

Sql语句中Like嵌套用法