MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Подреждане на набор от резултати произволно в mongo

Трябва да се съглася:най-лесното нещо е да инсталирате произволна стойност във вашите документи. Не е необходимо също така да има изключително голям диапазон от стойности – броят, който избирате, зависи от очаквания размер на резултата за вашите заявки (1 000 – 1 000 000 различни цели числа би трябвало да са достатъчни за повечето случаи).

Когато стартирате заявката си, не се притеснявайте за произволното поле – вместо това го индексирайте и го използвайте за сортиране. Тъй като няма съответствие между произволното число и документа, трябва да получите сравнително произволни резултати. Имайте предвид, че сблъсъците вероятно ще доведат до връщане на документи в естествен ред.

Докато това е със сигурност хак, имате много лесен път за бягство:като се има предвид естеството на MongoDB без схеми, можете просто да спрете да включвате произволното поле, след като има поддръжка за произволно сортиране в сървъра. Ако размерът е проблем, можете да стартирате пакетно задание, за да премахнете полето от съществуващи документи. Не би трябвало да има значителна промяна във вашия клиентски код, ако го проектирате внимателно.

Алтернативен вариант би бил да се мисли дълго и усилено за броя на резултатите, които ще бъдат рандомизирани и върнати за дадена заявка. Може да не е прекалено скъпо просто да разбъркате клиентския код (т.е. ако вземете предвид само последните 10 000 публикации).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB срещу DynamoDB:Какво трябва да знаете

  2. Mongodb - Разлика между стартиране на бази данни mongo и mongod

  3. Управление на потребителите на база данни с ClusterControl

  4. Redis срещу MongoDB

  5. Изберете вложени полета в mongo db