mongo出現重複_id ,Duplicate documents on _id (in mongo)
生產的問題:
發現mongodb中collectionA,裡面_id 重複。重複的兩條資料,除了xx欄位不一樣,其他都差不多。
正常情況_id是能保證唯一的,是mongodb自動生成的。
原因:
xx 欄位是片健,資料存入collectionA時,按照xx先進行分片,存到不同的區中。
程式: 先判斷業務id是否存在,存在獲取_id,然後根據_id 更新。不存在,就插入,_id自動生成
第一次: 不存在,插入 ,資料一條正確
第二次:存在,更新,通過業務id獲取_id,通過_id更新。可是xx欄位值改變,而xx作為片健,因為值改變了,所以被分片到另一個區,而新的去沒有這個_id,所以插入了一條新的,而_id 是原來的
解決:
片健選擇
1> 片健的值能標識一個業務單子的唯一性,一個單子這個組合或者單個作為片健的,值不能變
2> 片健必填
提醒:
建片健,有個引數 {unique: true},標識唯一性,這樣更加可以限制了重複問題
相關推薦
mongo出現重複_id ,Duplicate documents on _id (in mongo)
生產的問題: 發現mongodb中collectionA,裡面_id 重複。重複的兩條資料,除了xx欄位不一樣,其他都差不多。 正常情況_id是能保證唯一的,是mongodb自動生成的。 原因: xx 欄位是片健,資料存入collecti
使用mysql的limit進行分頁時出現重複問題
使用MySQL的limit進行分頁時,例如 select * from table_1 where 1=1 limit m,n 這樣後面的頁可能會出現重複資料,這時可以通過加入order by 子句來解決這種情況, select * from table_1 w
如何避免MySQL出現重複資料?
對於常規的MySQL資料表中可能存在重複的資料,有些情況是允許重複資料的存在,有些情況是不允許的,這個時候我們就需要查詢並刪除這些重複資料,以下是具體的處理方法! 方法一:防止表中出現重複資料 當表中未新增資料時,可以在MySQL資料表中設定指定的欄位為PRIMARY KEY(主鍵) 或者
資料庫存資料時,邏輯上防重了為啥還會出現重複記錄?
在很多異常情況下,比如高併發、網路糟糕的時候,資料庫裡偶爾會出現重複的記錄。 假如現在有一張書籍表,結構類似這樣 +----+--------------+ | id | name | +----+--------------+ | 1 | 世界簡史 | +----+------
檢視一個列表中是否出現重複元素
轉載地址: http://greenteapress.com/thinkpython2/code/has_duplicates.py 《像電腦科學家一樣思考Python》 11.10練習中的練習 11-4 # 通過使用set函式來確定這個需求,就這段程式碼 return len
servlet獲取checkbox的值出現選中的值為on。問題所在。。。
pass input bsp 是否 method 運動 ext lin 密碼 <form action="/Http/request06" method="post"> 用戶名:<input type="text" name="username"/>
mybatis 多表關聯查詢時,如果使用resultType作為輸出對映時,估計會出現重複資料
mybatis 多表關聯查詢時,一般建議還是使用把需要關聯的表的pojo新增到主表對應的pojo中作為它的屬性,這樣在mapper.xml檔案中可以使用assacition(一對一查詢),或者colletion(一對多查詢)來使用resultMap作為輸出對映。 不過最近我
mxnet在pycharm環境中調試出現error : no space left on device
執行好幾次多執行緒的dataloader,在debug模式下頻繁地終止pycharm執行,結果出現error : no space left on device錯誤,並且程式無法執行了。。。。。。嚇死本寶寶了。。。。。 百度發現是系統的資源耗盡了,df -h,df -i分別查磁碟和iN
spring+quartz定時任務出現重複呼叫
出現問題的原因: 應該都是將quartz配置和spring配置放在了同一個xml檔案中,導致被容器掃描了兩次 如何解決呢? 其實你看了會覺得so easy 將quartz配置單獨放在一個xml檔案中,在web.xml中進行配置即可 1、新建quartz配置x
ROS cmake編譯出現重複定義main函式解決方法
add_executable(map_engine_node src/listener.cpp src/map_engine_node.cpp) add_executable這個命令是用來生成一個可執行檔案的,原始檔可以有多個,但其中只能有一個主函式,就跟VS裡面的工程一樣,但是我誤
Linux伺服器出現:No space left on device的解決方法
報錯資訊: 2016-06-02 23:56:26 [com.thinkive.server.logger.TradeLogger]-[ERROR] java.io.IOException: No space left o
AngularJs ng-repeat解決迴圈物件出現重複項報錯的問題
問題:ng-repeat 的迴圈物件是不能出現重複項的,所以如果有重複的就會報錯,應該是 key value的問題吧,不是很瞭解內部執行機制;經過查詢發現 在 迴圈後面加上 track by $index 就會解決問題,也就可以有重複物件了 報錯: 劃
匯入資料時 為避免出現重複資料的Sql語句
insert into tableName select top 1 '劉婷婷1',18 where not exists (select 1 from tableName where Age = 18 and Name = '劉婷婷1');
Ask HN: Duplicate photos on MacOS
We are dealing with a terabyte of duplicate photos, likely only 300 Gb of actual unique photos, spread across a multitude of directories.Had been working w
linux/if.h和net/if.h在統一程式中出現重複定義的解決
當在一個程式中同時載入了linux/if.h和net/if.h時,可能會出現重複定義的問題,如圖所示,因為兩個標頭檔案中存在很多使用了相同名字的定義。一個是系統核心中的,一個是使用者層面的,如果必須同
mxnet在pycharm環境中調試出現error : no space left on device
執行好幾次多執行緒的dataloader,在debug模式下頻繁地終止pycharm執行,結果出現error : no space left on device錯誤,並且程式無法執行了。。。。。。嚇死本寶寶了。。。。。百度發現是系統的資源耗盡了,df -h,df -i分別查
SpringBoot使用多例項QUARTZ出現重複執行問題
專案運行了1個多月,多例項的Quartz一直沒有問題,今天突然出現一個JOB重複執行了2次。檢視日誌發現兩個例項各執行了一次,但是是偶發現象,也就是一會執行一次,一會執行兩次,沒有規律。好奇怪,明明用了多例項Quartz。再次檢視排程器服務的日誌 201
ANT打war包時出現重複檔案的解決方法
最近用ant給java web程式打war包時發現打出來的war包裡面WEB-INF裡的檔案均有兩個,後來發現加上一句fileset,include,exclude語句之後就沒有重複檔案了 打包程式碼如下 <target name="antwar" depen
Android EditText在介面恢復時資料出現重複問題
我們在自定義組合控制元件,或者在ListView/RecyclerView的Item中使用EditText的時候,在螢幕旋轉或者在Fragment間切換返回時,會出現一種狀況: 當前介面上具有同一ID的EditText被填充了相同的資料。 具體的原因和解決辦法可以看這裡:
nginx錯誤日誌出現worker process 24939 exited on signal 11 (core dumped)
今天發現用google瀏覽器訪問nginx伺服器時,部分檔案請求無法正常載入,導致頁面顯示不正常。檢視nginx錯誤日誌,出現了大量這樣的資料: 2015/04/22 13:31:59 [alert] 13175#0: worker process 2703 exited