Это звучит странно, и я надеюсь, что что-то сделаю неправильно, но моя коллекция MongoDB возвращает счетчик одним в моей коллекции.Неверный счет, возвращенный MongoDB (WiredTiger)
У меня есть коллекция с (я уверен) 359671 документов. Однако команда count() возвращает 359670 документов.
Я уверен, выполнение команды COUNT() с помощью Монго оболочки:
rs0:PRIMARY> db.COLLECTION.count()
359670
Это неправильно.
Это не находит каждый документ в моей коллекции.
Если я обеспечиваю следующий запрос для подсчета, я получаю правильный результат:
rs0:PRIMARY> db.COLLECTION.count({_id: {$exists: true}})
359671
Я считаю, что это ошибка в WiredTiger. Насколько мне известно, каждый документ имеет то же определение, поле _id целого числа от 0 до 359670 и поле BinData. У меня не было этой проблемы с более старым механизмом хранения (или Mongo 2, это могло вызвать проблему).
Является ли это чем-то, что я сделал неправильно? Я не хочу использовать запрос {_id: {$ exists: true}}, поскольку для завершения требуется 100 раз.
Вы используете осколки кластера? Если это так, см. Http://docs.mongodb.org/manual/reference/method/db.collection.count/#sharded-clusters – JohnnyHK
Я не использую осколок кластера, но спасибо за ваше предложение. – James