1

以下代码向我返回了包含该字段的文档列表text

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

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

4

1 回答 1

1

不幸的是,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.
于 2020-05-01T18:12:22.497 回答