2015-11-27 83 views
0

我有一些文檔的id是隨機生成的。這裏的問題是我需要找到這些文件中的重複項。我有三個字段,對於兩個文件不應該是相同的。那麼如何檢查基於多個字段的重複項?查找重複的文檔

樣本文件

document 1 = { 
"process" : "business", 
"processId" : 5433321, 
"country" : "US" 
} 

document 2 = { 
"process" : "operations", 
"processId" : 334233, 
"country" : "UK" 
} 

document 3 = { 
"process" : "business", 
"processId" : 5433321, 
"country" : "US" 
} 

在這裏,你可以看到,文件1和文件3相同,但他們都在我的數據庫具有不同的ID,所以存在作爲單獨的文檔。所以在運行時,我需要找到上面的重複,如果可能的話只保留一個。

+0

你可以顯示你正在談論的那些領域的示例文檔嗎? – Val

回答

0

這裏最好的選擇是圍繞文檔ID建模文檔。現在爲每個獨特的文檔創建一個docID,它是文檔內容的散列。這確保索引中只存在一個唯一的文檔。接下來使用_create API創建文檔。這將會使用相同的文檔ID覆蓋寫入文檔的所有請求失敗。

您可以進一步閱讀其他重複問題及其解決方案here