2013-02-11 5 views
2

Работая с большой коллекцией в mongoDB, часто полезно проводить анализ по образцу документов вместо всего набора. Один простой способ сделать это - запустить ObjectIds через хеш-функцию, сопоставляя их с целыми числами, а затем использовать $ mod для выбора подвыборки документов.MongoDB: Хешировать _id целому числу?

Главное, чтобы нарисовать образец документов таким образом, чтобы это было эффективно случайным: выбор в набор не коррелирует ни с чем другим, о котором мы могли бы заботиться.

Есть ли хороший способ сделать это? Бонусные точки, если запрос выполняется быстро.

PS: Я знаю подход random attribute, но ему не очень нравится, потому что он освобождает место для хранения.

ответ

0

Не могли бы вы получить все объекты документов docs в коллекции в массиве, отсортировать массив и затем выбрать случайные расположения индексов в этом массиве?

+0

Да, но он включает в себя два запроса по всей коллекции. – Abe

Смежные вопросы