使用 TinyDB 仅获取字段值而不是文档



下面的代码向我返回了字段text的文档列表。

db = TinyDB('/stream.json')
Tweet = Query()
db.search(Tweet.text.exists())

相反,我只想在具有text字段的所有文档上获取text字段值的数组。最好在读取 json 时获取它,而不是将所有内容加载到内存中然后过滤它。

不幸的是,TinyDB只支持查询过滤器。它不支持在与该特定查询过滤器匹配的文档中返回哪些字段,类似于MongoDB投影参数。

您始终可以使用列表理解来自己过滤它:

from tinydb import TinyDB, Query
db = TinyDB('/stream.json')
Tweet = Query()
texts = [tweet.get('text') for tweet in db.search(Tweet.text.exists())]
print(texts)  # List of all text field values.

最新更新