Unsort Collection

yerke

Well-known member
28.08.2007
392
0
#1
привет всем

Set notesDocumentCollection=notesDocument.Responses

возвращает коллекцию отсортированную по дате создания респонсев
а мне надо достать их вообще не сортированном виде
как сделать
 

yerke

Well-known member
28.08.2007
392
0
#5
Потому что не надо GetNextDocument.
в хелпе же написано notesDocumentCollection будет отсортировант тока том случае если его достать
через FTSearch GetAllDocumentsByKey итп

почему Лотус возвращает коллекцию респонсев по дате создания

Ordering of documents
The documents in a collection are ordered when the collection results from a full-text search; otherwise, the documents are unordered.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
Вроде бы отсортированная коллекция получается только при FTSearch.

почему Лотус возвращает коллекцию респонсев по дате создания
Значит, так получилось.
 

Murtas

Lotus team
11.04.2006
128
0
#8
... впервые такую надобность встречаю :) - обычно нужно обратное - по какому нибудь признаку
 

yerke

Well-known member
28.08.2007
392
0
#10
... впервые такую надобность встречаю - обычно нужно обратное - по какому нибудь признаку
объясняную

например есть вопросы тестов по матиматике (всего допустим 120 вопросов-респонсев)
первые 40 из них по алгебре
след. 40 по дискретке
а след. 40 по матанализу

и они загружены в базу по этому порядку и соответ-но их дата создание идет по порядку
и я достаю первый док из коллекции респонсев с помощью Rnd и GetNthDocument
а последующие достаю с помощью GetNextDocument

при этом я рискую достать тока похожие вопросы
например 20 вопросов по алгебре и тока 10 по другим
а мне надо в разброс

а юзать Rnd и GetNthDocument для каждого дока
замедляет скрипт
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 601
277
#11
привет всем

Set notesDocumentCollection=notesDocument.Responses

возвращает коллекцию отсортированную по дате создания респонсев
а мне надо достать их вообще не сортированном виде
как сделать
по-мне - это заявление изначально спорно :)
как это несортировано вообще?! Вы в жизни такое встречали (даже теоретически)?
мы живем в мире - где всё подчиняется, как минимум, временной составляющей
ежели хотите рэдомизацию (как указывали выше) - то так и скажите...
кстати замечу - что рэдомизация, в ПиСи (к примеру), так или иначе зависит от времени ;)
 

yerke

Well-known member
28.08.2007
392
0
#12
по-мне - это заявление изначально спорно
как это несортировано вообще?! Вы в жизни такое встречали (даже теоретически)?
мы живем в мире - где всё подчиняется, как минимум, временной составляющей
ежели хотите рэдомизацию (как указывали выше) - то так и скажите...
кстати замечу - что рэдомизация, в ПиСи (к примеру), так или иначе зависит от времени
а как начет хауса
в нем разве есть порядок
:)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#14
У Хауса за порядком следит Кадди. :)
По теме: несильно будет замедлять. Для скорости можешь перегнать вопросы в массив и дергать уже из него случайные.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 601
277
#15
по-поводу алгоритма - забирайте юниды в список (инмемори) и там его рэндомно преобразуйте
апосля, по юниду - получите док
 

Murtas

Lotus team
11.04.2006
128
0
#16
yerke, ну простейшее что приходит в голову - нужно нагенерить 30 случайных чисел из 120 - надеюсь, как сделать знаешь ... ну и доставать их соответственно через GetNthDocument
 

yerke

Well-known member
28.08.2007
392
0
#17
yerke, ну простейшее что приходит в голову - нужно нагенерить 30 случайных чисел из 120 - надеюсь, как сделать знаешь ... ну и доставать их соответственно через GetNthDocument
ну эт понятно

мне нужно не тока 30 респонсев так как
некоторые из вопросов могут оказаться некорректнымы
то есть могут не проити валидацию

так что я заранее не знаю число итереации
цикл длится до того как не наберется 30 корректных вопрсов

если по предмету всего 1000 вопросов (такое вывает)
то GetNthDocument не катит так как я ище их должен проверить на валидность
и еще все вопросы и их ответы в ричтекстах

lmike
натолкнул на мысль
1) получаю все респонсы
2) получаю в массив все их юниды
3) отсортирую эти юниды по убыванию (или по возрастанию не важно)
4) и доки буду дергать по эти отсортированным юнидам

надеюсь лотус
при создании документа не присвает юниды по порядку :)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 601
277
#18
присваивает по таймеру! - гы :)
 

yerke

Well-known member
28.08.2007
392
0
#19
то есть

коллекция (отсортированный по дате создания)--->
коллекция (не сортированный по юниду)--->
коллекция (отсортированный по юниду)--->
коллекция (не сортированный по дате создания)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#20
lmike
Разве не вторую часть только? Первая случайна, поэтому сортировка сработает.