我为项目创建了一个数据库,我希望能够在数据库中搜索值,但不仅仅是简单的==操作。例如,如果有人在“哥伦比亚”中键入搜索内容,我希望将“哥伦比亚大学”字典作为该特定人员的“关联”键的值
答案 0 :(得分:2)
您可以使用正则表达式进行搜索:
>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))
这些对应于Python的re.match
和re.search
,其中后者搜索可能从字符串中的任何位置开始的occurenc。
或者,您可以使用自定义测试表达式,如下所示:
>>> test_contains = lambda value, search: search in value
>>> db.search(User.name.test(test_contains, 'Columbia'))
有关详细信息,请参阅relevant section of the TinyDB docs。