Différence entre le curseur.count () et curseur.taille () en MongoDB

Quelle est la différence entre cursor.count() et cursor.size() méthodes de MongoDB DBCursor?

16
demandé sur Mark Amery 2012-08-09 14:25:33

2 réponses

Javadoc de la MongoDB Pilote Java, il dit :

DBCursor.count (): Compte le nombre d'objets correspondant à la requête. Ce fait limite/saut en considération.

DBCursor.taille(): Compte le nombre d'objets correspondant à la requête. Ce ne prenez limite/saut en considération.

31
répondu Parvin Gasimzade 2015-10-14 22:07:36

plus qu'une réponse j'aimerais souligner un problème que notre équipe a rencontré en "mélangeant" les deux.

Nous avons eu quelque chose comme ceci:

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

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

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

il s'est avéré qu'après avoir appelé le cursor.count() méthode, la limite était de ignoré (plase de prendre un coup d'oeil à autre question) , nous avons souhaité savoir combien d'articles ont été retournés par la requête, nous avons appelé le cursor.size() méthode à la place, depuis l'appel de la count on a eu un indésirable effet collatéral.

j'espère que cela pourrait être utile à quelqu'un d'autre, car il n'a pas été facile de trouver la source du problème, nous étions confrontés.

2
répondu David Chaverri 2017-05-23 11:54:09