2016-10-25 3 views
-1

Привет Быстрый теоретический вопрос,Монго Db Пропустите() Возвращаемые значения

Когда MongoDB возвращает набор после использования команды как

db.collection.find().skip(1000) 

ли он просто вернуться из объекта в 1000-конец коллекция или возвращает каждый объект в коллекции, но начинается с 1000-го объекта, аналогичного круговой очереди.

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

>>db.mycollection.find().skip(33405000).count() 
>>393245869 
>>db.mycollection.find().count() 
>>393245869 

Спасибо!

ответ

0

Теперь ваш вопрос интереснее. Из официальной документации MongoDB вы можете прочитать:

По умолчанию метод подсчета() игнорирует эффекты cursor.skip() и cursor.limit(). Установите applySkipLimit в true, чтобы рассмотрел эффект этих методов.

Попробуйте это:

db.collection.find().skip(33405000).count({applySkipLimit:true}) 

Для получения дополнительной информации вы можете увидеть cursor.count

+0

Спасибо, что проясняет много! – Dunny