如何从 pymongo 字段中的所有值创建一个列表?

Posted

技术标签:

【中文标题】如何从 pymongo 字段中的所有值创建一个列表?【英文标题】:How to make a list from all values in a field in pymongo? 【发布时间】:2019-05-22 19:50:12 【问题描述】:

我有一个单词数据库,其结构如下:


    initial: "t"
    count: 3,
    words: [
        value: "the", tweets: ["tweet_id": <some-tweet-id>, "pos": (2, 5), 
                                "tweet_id": <some-other-tweet-id>, "pos": (9, 12)],
        value: "turkish", tweets: ["tweet_id": <some-tweet-id>, "pos": (5, 11)]
]

我正在存储存在于数百万条推文中的所有唯一单词及其在此数据库中的位置。问题是我想轻松列出所有以首字母开头的单词。为了更清楚,我想做类似的事情:

cur = db.tweet_words.find("initial": initial)
words = list(next(cur)["words"]) 

如何在不扭曲数据库当前架构的情况下实现这一点? (要了解为什么我需要保留架构,请参阅this question)

【问题讨论】:

【参考方案1】:

您可以使用distinct 来执行此操作:

db.tweet_words.distinct("words.value", "initial": initial)

输出:

[ "the", "turkish" ]

【讨论】:

以上是关于如何从 pymongo 字段中的所有值创建一个列表?的主要内容,如果未能解决你的问题,请参考以下文章