Монго find(), верните все документы в коллекции. Я хочу сохранить каждый документ, который у меня есть в моем mongodb, в другой базе данных. Итак, я хочу продолжать опрашивать mongodb для одного нового документа, потому что find().limit(1) будет возвращать мне одно и то же снова и снова. Я просто хочу, чтобы монго вернулся, весь документ один за другим. Является ли это возможным? Как это может быть сделано?
Изменить: я хочу просто скопировать каждую запись в моем экземпляре mongodb в другую базу данных, а не только в последние.
Ответ 1 · рейтинг 1 · DhruvPathak
Используйте sort , по умолчанию это естественная сортировка, т.е.:
найти (). Сортировать ({_id:-1}). Лимит (1)
Вам нужно будет сохранить _id текущего полученного документа и сопоставить его со следующим, полученным с тем же запросом, если они разные, вы сохраните документ, а также новый _id.
- Лучше использовать хвостовой курсор: http://docs.mongodb.org/manual/tutorial/create-tailable-cursor/
Ответ 2 · рейтинг 1 · AllHailMegatron
Похоже, что в комментарии Филиппа есть ответ, который вы ищете, но чтобы ответить на исходный вопрос:
Я бы не советовал использовать сортировку для всей базы данных, если вы ожидаете, что размеры ваших документов будут довольно большими, также ограничение приведет к ужасной производительности.
Запуск операции find() на самом деле возвращает вам объект курсора, который вы можете повторять, который эффективно работает в потоковом режиме и, следовательно, именно то, что вы просите.