Документы в моей коллекции MongoDB очень часто меняют поле статуса.Я вижу это очень ясно, используя клиент mongoDB (Robo 3T).
Теперь я хотел бы отслеживать этот процесс, используя mongo
shell:
mongo --host=localhost db --eval "db.getCollection('events').find({status:'ACTIVE'}).count()"
Это возвращает правильныйрезультат, но затем mongoDB «кэширует» его и не будет возвращать обновленный результат в течение еще ~ 10 секунд.Мне нужно обновлять каждые 200 мс.
Один и тот же запрос от Robo 3T всегда возвращает обновленный результат в ~ 5 мс.
Из моих наблюдений, когда нагрузка ниже, оболочка Монгообновления количества приходят на каждый запрос.
Я не могу найти никакой информации о механизмах, подобных кешу, в документации MongoDB.Как я могу отключить это?Почему с Robo 3T все работает нормально?
PS
Я наблюдал то же поведение со скриптом Python, который опрашивает mongo с запросом count () - результаты кэшируются.Но как только я начинаю выполнять запрос в Robo 3T, числа начинают двигаться в оболочке python и mongo!Что происходит?