2013-04-26 53 views
1

編寫XPath或Sitecore查詢/快速查詢以獲取日期範圍內的所有項目非常容易:如何通過第一個版本創建日期來查詢Sitecore項目?

例如,

/sitecore/content/*[@__created>='20130301T000000' and @__created<'20130427T000000'] 

然而,這種類型的查詢只着眼於某個項目的最新版本,因此這似乎是不可能找到實際項目的created日期(不是版本的created日期)。

我可以寫一個位的C#代碼來執行查詢,但會涉及每一個項目第一取回1版在我的數據庫然後我可以做created日期我的過濾器前。這將是令人難以置信的緩慢。

XPath/Query notation/Fast可以嗎?如果不是的話,我有辦法做到這一點嗎?

+1

爲什麼您需要獲取物品(版本1)創建時的日期(可能有其他方式)?你確定會在現場環境中工作嗎? (據我所知,網絡數據庫只有1個版本 - 最新版本) 另外,你不能指望完全檢索版本1 - 它可能在某個時候被刪除。如果您確實找到了解決方案,請確保選擇最低版本號。 – Trayek 2013-04-26 13:26:57

+0

@Trayek這將用於維護我們的主數據庫 - 這不是實時網站所必需的。我們有各種腳本來幫助我們維護和分析我們的內容。好的呼籲最低版本號,而不是期待版本1.謝謝。 – theyetiman 2013-04-29 08:20:16

回答

3

我想到了可能有用的東西:
創建一個新的領域,你的所有物品都會得到。然後在這個字段中,創建一個項目(不是版本),在那裏輸入日期時間。
當版本被刪除時,沒關係,因爲所有版本都會有該字段,並具有完全相同的值。

唯一的問題是,您必須運行一次腳本才能遍歷現有項目,以便爲每個項目填充正確的值。

然後,您可以使用與現在相同的XPath查詢。

+0

開箱即用! +1 – 2013-04-26 16:06:35

+0

好吧,至少在SO_Your Answer_框內:-p – jammykam 2013-04-26 17:52:47

+0

@trayek有趣的想法,但就像你說它仍然需要某種C#腳本來填充數據(目的是搜索歷史項目)。 – theyetiman 2013-04-29 08:32:24

相關問題