Разница между курсором.Count() и курсор.размер() в MongoDB

в чем разница между cursor.count() и cursor.size() методы в MongoDB DBCursor?

2 ответов


с Javadoc драйвера Java MongoDB Он говорит :

DBCursor.count (): подсчитывает количество объектов, соответствующих запросу. Этот делает не примите предел / скип в рассмотрение.

DBCursor.size (): подсчитывает количество объектов, соответствующих запросу. Этот принимает ли limit / skip во внимание.


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

у нас было что-то вроде этого:

DBCursor cursor = collection.find(query).limit(batchSize);

logger.info("{} items found.", cursor.count());

while (cursor.hasNext()) {
...
}

оказалось, что после вызова cursor.count() метод, предел был игнорировать (plase взгляните на этой другой вопрос), мы намеревались узнать, сколько элементов было возвращено запросом, поэтому мы должны были вызвать cursor.size() метод вместо этого, так как вызов count у одного был нежелательный побочный эффект.

Я надеюсь, что это может быть полезно для кого-либо еще, так как было не так легко найти источник проблемы, с которой мы столкнулись.