如何从 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 字段中的所有值创建一个列表?的主要内容,如果未能解决你的问题,请参考以下文章

pymongo 用它的子字符串值更新字段集合中的所有文档

PyMongo - 将属性中的所有值设置为小写[重复]

pymongo:如何从 mongodb 的字段中获取多个结果?

PyMongo:如何获取与任何可能的过滤器匹配的所有对象?

如何从 React.js 中的多个输入输入字段创建列表?

将 Pymongo 数据从列表附加到 pandas 数据框