Как составить список из всех значений в поле в pymongo? - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть база данных слов, которая имеет следующую структуру:

{
    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"]) 

Как этого добиться, не искажая текущую схему базы данных?(Чтобы понять, почему мне нужно сохранить схему, обратитесь к этому вопросу )

1 Ответ

0 голосов
/ 23 декабря 2018

Вы можете использовать distinct, чтобы сделать это:

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

Выход:

[ "the", "turkish" ]
...