爬蟲使用MongoDB儲存資料怎麼去除重複資料?

時間 2021-06-13 09:31:07

1樓:

每個崗位資訊不要用list來返回,用字典來返回。比如返回的字典是job_dict,然後把字典傳入下面這個函式。反正你都說了職位ID值是不同的,那就以ID來判斷是不是重複。

你的parse_html()函式改一下,讓它返回乙個字典,

defwrite_to_mongodb(data):

if notdb[MONGO_TABLE].find_one():

db[MONGO_TABLE].insert(data)

2樓:loco

用ObjectId來去重,具體操作可以像這樣:db.

insert

()如果出現重複的ObjectId插入的時候會拋異常,注意處理

3樓:蘇若

這種情況請使用MongoDB的update來更新資料,而非用insert插入,具體如下:

db.collection.update(,,

)引數說明:

query: update的查詢條件,類似sql update查詢內where後面的。

update: update的物件和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的

upsert: 可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。

multi: 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。

writeConcern:可選,丟擲異常的級別。

遊戲伺服器使用MongoDB作為資料庫,還有必要使用Redis快取嗎?

圓胖腫 用啥資料庫啊,直接放verticle裡面,速度比用redis快兩個數量級 你想用persistence的話,做乙個非同步的io就是了 說白了還是你的應用太小了。另,MongoDB不是記憶體資料庫,和mysql的NDB儲存引擎一樣,只是把索引檔案放到記憶體中。 徐波 把MongoDB當成MyS...

使用STM32儲存採集的資料,應該儲存在片內flash還是SRAM呢?

TopSemic 既然資源足夠多,建議在SRAM開兩個陣列,Buffer1 1024 Buffer2 1024 這樣在ADC往其中乙個Buffer存數的時候,可以同時把另乙個Buffer中的資料上傳PC。這樣處理起來簡單一些。Flash的讀寫速度比SRAM慢很多,而且Flash的擦寫次數都是有限制的...

redis同步資料到mongodb中

我或者我 一定要堅持一點,redis只做快取,不存放任何狀態資料。快取快取快取,它唯一的目的就是加快一些常用資訊的讀取速度,如果需要對資料進行變更,絕對不能絕對不能絕對不能單純針對redis做任何資料改動。既然是快取,自然也沒必要做持久化儲存。 江花勝火 瀉藥,先猜測一下題主應該對mongodb不了...