第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pymongo 的問題:想要向現(xiàn)有數(shù)據(jù)庫添加具有不同值的新字段,但所有條目都是相同的

Pymongo 的問題:想要向現(xiàn)有數(shù)據(jù)庫添加具有不同值的新字段,但所有條目都是相同的

夢里花落0921 2023-08-22 16:32:09
我有一個評論數(shù)據(jù)庫,并想在我的數(shù)據(jù)庫中創(chuàng)建一個新字段,指示評論是否包含與“池”相關(guān)的單詞。import reimport pandas as pdfrom pymongo import MongoClientclient = MongoClient()db = client.Hotels_Copenhagencollection = db.get_collection("hotel_review_table")data = pd.DataFrame(list(collection.find()))def common_member(a, b):    a_set = set(a)    b_set = set(b)    if a_set & b_set:        return True    else:        return Falsepool_set = {"pool","swim","swimming"}for single_review in data.review_text:    make_it_lowercase = str(single_review).lower()    tokenize_it = re.split("\s|\.|,", make_it_lowercase)    pool_mentioned = common_member(tokenize_it, pool_set)    db.hotel_review_table.update_one({}, {"$set":{"pool_mentioned": pool_mentioned}})在 python 中,我已經(jīng)統(tǒng)計了包含與“pool”相關(guān)的單詞的評論數(shù)量,結(jié)果發(fā)現(xiàn)我的評論中有 1k/50k 談?wù)摰氖?pool。我通過將 db.hotel_review_table.update_one 行移動到循環(huán)中解決了之前發(fā)布的在各處獲取相同條目的問題。這樣主要問題就解決了。然而,像這樣更新數(shù)據(jù)庫需要相當長的時間。還有其他方法可以讓它更快嗎?
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

您費了很大的勁才實現(xiàn)了 MongoDB 中開箱即用的功能。您需要使用文本索引。


創(chuàng)建文本索引(在 MongoDB shell 中):


db.hotel_review_table.createIndex( { "single_review": "text" } )

然后你的代碼可以簡化為:


from pymongo import MongoClient


db = MongoClient()['Hotels_Copenhagen']


for keyword in ['pool', 'swim', 'swimming']:

? ? db.hotel_review_table.update_many({'single_review': keyword}, {'$set': {'pool_mentioned': True}})

請注意,如果未提及,則不會將該值設(shè)置為 false;如果確實需要,您可以編寫另一個更新來將任何不為 true 的值設(shè)置為 false。


查看完整回答
反對 回復(fù) 2023-08-22
  • 1 回答
  • 0 關(guān)注
  • 1417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號