2016-03-02 34 views
0

我已經在MarkLogic服務器中創建了一個數據庫,並且還爲同一個數據庫附加了一個目錄林。我如何識別Marklogic數據庫中的重複文檔?如何識別MarkLogic服務器中的重複文檔?

例如我在URI中的C.xml /A/B/c.xml/D/E/c.xml都是相同的森林和相同的數據庫。我如何確定c.xml是否重複?

+1

目前尚不清楚你的要求。 MarkLogic不能有重複的URI。它們就像關係數據庫中的主鍵。你能否更新你的問題來解釋你的問題是什麼?例如,您是否試圖確定如何添加內容並確保URI是唯一的(並避免在記錄上跺腳),首先檢查是否存在URI的策略等。 –

+0

URI唯一性在數據庫中進行管理級別橫跨當前連接的森林。如果您在數據庫A中創建URI X.json,並在單獨的數據庫B中創建URI X.json,然後將數據庫A和數據庫B中的森林安裝到數據庫C,則最終會得到重複的URI。 –

+0

例如,我在URI /A/B/c.xml中有C.xml,而/D/E/c.xml都是相同的林和相同的數據庫。現在請告訴我c.xml是否重複? – Antony

回答

1

爲了比較兩個文檔並確定它們是否重複(使用不同的URI加載相同的文檔),可以使用fn:deep-equal()函數。

例如:

let $doc1 := fn:doc("/A/B/c.xml") 
let $doc2 := fn:doc("/D/E/c.xml") 
return fn:deep-equal($doc1, $doc2) 
+0

謝謝hansen – Antony

+0

@Antony,它看起來像這回答了你的問題。如果是這樣,你能接受嗎? (這給了Mads信貸,並告訴人們尋找問題來回答這個問題並不需要更多的幫助。) –