如何从pymongo中的字段中的所有值组成列表?

时间:2018-12-22 23:23:54

标签: python mongodb dictionary pymongo

我有一个具有以下结构的单词数据库:

{
    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 个答案:

答案 0 :(得分:1)

您可以使用distinct进行此操作:

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

输出:

[ "the", "turkish" ]