2017-07-04 125 views
0

返回viewEntryCollection我有使用SSJS(或Java),所以我每次都遇到一個新的秩序將下面的代碼如何以隨機順序

var vec:ViewEntryCollection = database.getView("view").getAllEntriesByKey("Mykey",true) 

我怎樣才能使「VEC」按隨機順序?

+0

集合有多大? – shillem

+0

嗯,不確定,它可能很大,但這不太可能,可能在200條以下。如果它更容易,就足以不返回整個集合。只需要按照隨機順序返回10個條目 –

+2

如果您只需要返回所有條目的一小部分,那麼我不建議對整個集合進行混洗/重新排序。你可以簡單地使用'vec.getNthEntry(Math.floor(Math.random()* vec.getCount()));'在一個循環中獲得你想要返回的隨機條目的數量。如果要防止返回重複條目,則當然必須跟蹤已經使用的條目(例如,通過將索引作爲關鍵字將簡單SSJS對象中的條目保存)。 –

回答

2

如何在視圖上使用公式爲@Unique的輔助排序列。每次都需要刷新視圖,如果視圖很大,性能可能不會很好。

+0

無法更改視圖,對不起 –

1

爲了獲得更好的性能,不要將集合條目在內存中。首先,從你的視角製作UNID列表/數組。這將是最慢的部分。然後選擇任意一個隨機數,並從列表/數組中選擇所需數量的UNID。調用getDocumentByUnid或初始化(例如10)數據源。