MongoDB字段值为python中的变量

时间:2014-08-15 16:44:03

标签: python mongodb pymongo

我正在从MongoDB中获取条目,我想做一些修改,数据处理等和更新。在这个特定的例子中,Iam尝试收集所有文档  {u'time': 1405694995.310651, u'text': u'HOHO,r\u012bt ar evitu uz positivus ar vip bi\u013ceti kabat\u0101:)', u'_id': ObjectId('53cd621d51f4fbe9f6e04da4'), u'name': u'Madara B\u013cas\u0101ne', u'screenName': u'miumiumadara'}将其文本值作为字符串,计算其关键字值,然后添加到具有关键字值的精确特定文档字段。

我正在努力将文本字段作为字符串,以便可以操作。而且我还没有在python中找到如何使用count变量向文档添加新字段的解决方案。在Mongo shell中,命令很简单,但在这里我不知道。我有什么要找的吗?

db = conn.posit2014
collection = db.ceturtdiena

    cursor = db.all.find()
    for text_fromDB in cursor:

        print text_fromDB

        source_text = text_fromDB.translate(None, '#!@£$%^&*()_:""?><.,/\|+-')
        source_text = source_text.lower()

        source_words = source_text.split()

        count = 0  
        word_list = []
        with open('pozit.txt') as inputfile:
            for line in inputfile:
                word_list.append(line.strip())

        for word in word_list:
            if word in source_words:
                count += 1

        #add count variable to each document
        # {$set : {value:'count'}}

2 个答案:

答案 0 :(得分:1)

AFAIK text_fromDB只是一个字典,所以你可以这样做。 (如果您要更新文档)

text_fromDB['count'] = value
collection.update({'_id':text_fromDB['_id']}, {"$set": text_fromDB})

答案 1 :(得分:1)

我不确定我是否理解你要问的一切。让我们一次去一件。要将您的集合中的文本字段作为普通字符串获取,请尝试以下操作:

collection = db.centurtdiena
for doc in collection.find():
    text = str(doc['text'])
    print(text)