Мне нужно вытащить несколько случайных документов из коллекции в MongoDB. Я не хочу добавлять новый ключ в свои документы или использовать карту. Какие-либо предложения?MongoDB: сбор нескольких случайных документов из коллекции
1
A
ответ
2
Вы можете генерировать случайный пропуск в диапазоне от 0 до коллекционных подсчитывать, а затем загружать документы:
db.items.find().skip(randonNumberHere).limit(1);
Но, такой подход, потому что все меньше и менее эффективным для большой коллекции, потому что каждый раз, когда вы используете пропустить mongodb итерации с первого, чтобы пропустить элемент.
0
Если коллекция не смешно большой ...
all_ids = MyModel.collection.distinct(:_id)
@my_models = MyModel.find(all_ids.sample(100)) # or .shuffle.take(100) in 1.8.7
Смежные вопросы
- 1. MongoDB коллекции документов formtting
- 2. MongoDB возвращает 6 случайных строк из коллекции
- 3. Удаление документов из коллекции mongodb от node.js
- 4. MongoDB: дубликаты документов в коллекции
- 5. Подсчет документов в коллекции MongoDB
- 6. Сбор случайных объектов из класса
- 7. Удаление нескольких документов из массива в MongoDB
- 8. $ setUnion сливаться массив из нескольких документов MongoDB
- 9. Удаление нескольких документов MongoDB в Python
- 10. MongoDB коллекция дизайн сбор данных
- 11. Обработка нескольких версий документов в Монгоской коллекции
- 12. Удаление части подкомиссии коллекции документов в MongoDB
- 13. обновление нескольких документов с MongoDB
- 14. последние 50 документов из MongoDB
- 15. пар Поиск документов в коллекции MongoDB
- 16. MongoDB: Обновление нескольких документов с определенными критериями
- 17. удалить много документов из mongodb
- 18. MongoDB - Поиск дубликатов документов нескольких ключей
- 19. Почему количество документов коллекции в MongoDb уменьшает
- 20. MongoDB - различные типы документов в одной коллекции
- 21. Получить счетчик количества документов в коллекции Mongodb
- 22. Как подсчитать количество документов в коллекции mongodb
- 23. Ограничить количество документов в коллекции в mongodb
- 24. Count массива документов в коллекции MongoDB
- 25. Листинг MongoDB документов в коллекции кидает ошибки
- 26. Проблема с обновлением нескольких документов в mongodb
- 27. MongoDB Извлечение Подмассивы из документов
- 28. Монго: запрос документов из нескольких коллекций
- 29. Создание коллекции из подмножества коллекции в mongodb
- 30. Запрос MongoDB для удаления дубликатов документов из коллекции
см http://stackoverflow.com/questions/2824157/random-record-from-mongodb – Drake
Я тебя слышу! Я не думаю, что параметры уровня приложения очень хороши. К счастью, есть запрос [функция, чтобы получить случайные элементы из коллекции] (https://jira.mongodb.org/browse/SERVER-533) в отслеживателе билетов MongoDB. Если он будет реализован изначально, это, скорее всего, самый эффективный вариант. (Если вы хотите эту функцию, проголосуйте.) –