Musím souhlasit:nejjednodušší je nainstalovat do dokumentů náhodnou hodnotu. Nemusí existovat ani ohromně velký rozsah hodnot – počet, který zvolíte, závisí na očekávané velikosti výsledků pro vaše dotazy (1 000 – 1 000 000 různých celých čísel by pro většinu případů mělo stačit).
Když spustíte dotaz, nedělejte si starosti s náhodným polem – místo toho jej indexujte a použijte k řazení. Protože mezi náhodným číslem a dokumentem neexistuje žádná korespondence, měli byste získat poměrně náhodné výsledky. Upozorňujeme, že kolize pravděpodobně způsobí, že se dokumenty vrátí v přirozeném pořadí.
Zatímco toto je jistě hack, máte velmi snadnou únikovou cestu:vzhledem k tomu, že MongoDB je bez schémat, můžete jednoduše přestat zahrnovat náhodné pole, jakmile bude na serveru podpora náhodného řazení. Pokud je velikost problémem, můžete spustit dávkovou úlohu a odstranit pole ze stávajících dokumentů. Pokud jej navrhnete pečlivě, nemělo by dojít k významné změně kódu klienta.
Alternativní možností by bylo dlouze přemýšlet o počtu výsledků, které budou randomizovány a vráceny pro daný dotaz. Jednoduše promíchat klientský kód nemusí být příliš drahé (tj. pokud vezmete v úvahu pouze posledních 10 000 příspěvků).