mongodb中處理插入資料去重問題

2021-12-30 05:23:49 字數 811 閱讀 4332

最近在寫乙個爬蟲工具,將**的資料儲存到mongodb中,由於資料有重複的,所以我就在建立資料庫的時候,為集合建立了索引,下面說下我的步驟,集合名稱為drugitem,

下面是集合截圖:

我要為name欄位建立唯一索引,因為要保證name沒有重複:

就這樣我執行程式發現資料比原來沒有設定唯一索引時少了好多,我仔細檢視發現程式在name欄位重複的地方停止了,這不是我想要的結果,因為後面的資料還沒有查詢完成。於是我就刪除了原來建立的name索引:

然後remove資料,重新按照老辦法重新抓取資料,這樣一來資料是得到了,但是本質問題還沒解決,裡面含有許多重複資料,於是我使用唯一索引+去重操作得到最終結果:

這樣做的前提是集合中已經含有所有資料,這樣處理後會發現drugitem集合中文件減少,說明去除了重複的文件。

問題雖然解決了,但是我覺得還是不太合適,難道我們每次都要這樣處理才能得到最終資料?能不能在程式中插入的時候加以判斷(或許這樣會增加插入時間)或者在建立集合的時候提前配置好?由於本人初次接觸mongodb,希望有高手看到後給予指點。

MongoDB資料庫去重操作

關於pymongo的去重方法,網上找了老半天,都沒有發現單獨對pymongo裡面的資料進行去重的方法 網上說的最多的是 使用 distingct 方法進行去重操作,但是這個方法,只是返回了去重之後的資料,並沒有返回整個資料列表 而且並不是說執行過後,就把資料庫中重複的內容刪除了,因此並沒有達到我的需...

mysql 高效的去重插入資料

我們最簡單的想法就是先查詢一下,看看這個物件有沒有在,如果在,就更新或者刪除,或者忽略,如果不在就插入,但是對於資料處理來說,這個可能就有點浪費效能了,而且我們學習的也是批量儲存比單一儲存要快,單一儲存30ms,批量儲存10個40ms,批量儲存越大,他們兩個的差距就越大,又有人提出了select i...

jdbcTemplate批量插入處理資料

最近有個需求,就是批量處理資料,但是併發量應該很大,當時第一時間想到得是mybatis的foreach去處理,但是後來通過查資料發現,相對有spring 的jdbctemplate處理速度,mybatis還是有些慢,後來就自己重寫了一下jdbctemplate的批量處理 public void ba...