1

我为一个项目创建了一个数据库,我希望能够在数据库中搜索值,但比简单的 == 操作要好。例如,如果有人输入“哥伦比亚”进行搜索,我希望字典中包含“哥伦比亚大学”作为该特定人的“从属关系”键的值

4

1 回答 1

2

您可以使用正则表达式进行搜索:

>>> db.search(User.name.matches('[aZ]*'))
>>> db.search(User.name.search('b+'))

这些对应于 Python re.matchre.search后者在其中搜索可能从字符串中的任何位置开始的发生。

或者,您可以使用自定义测试表达式,如下所示:

>>> test_contains = lambda value, search: search in value
>>> db.search(User.name.test(test_contains, 'Columbia'))

有关更多详细信息,请参阅TinyDB 文档的相关部分

于 2015-12-31T13:41:16.187 回答