Springboot2 + реактивный + монго => Коллекция Tailable and Capped - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь провести некоторые тесты с Springboot2, особенно с Reactor (Flux / Mono). У меня проблема.

Когда я пытаюсь использовать метод репозитория, извлекаю всех своих людей, я использую этот метод: @Tailable Flux findWithTailableCursorBy ();

Но в моем случае я получаю эту ошибку

Caused by: com.mongodb.MongoQueryException: Query failed with error code 2 and error message 'error processing query: ns=test.person batchSize=2Tree: $andSort: {}Proj: {} tailable cursor requested on non capped collection' on server localhost:27017

Когда я устанавливаю свою коллекцию на «верхний предел», она работает

db.runCommand( { convertToCapped: 'person', size: 8192 } )

Но я не буду использовать ограниченную коллекцию по многим причинам

  • Невозможно удалить документ (необходимо удалить коллекцию)
  • Не устанавливать это свойство программно

Я не знаю, как решить эту проблему, возможно, я ошибаюсь в своем коде или выборе.

Может кто-нибудь объяснить мне, как использовать извлечение только новых элементов в моей БД?

Привет

1 Ответ

0 голосов
/ 01 июня 2018

Это сделано специально, а не ограничено данными Spring. MongoDB поддерживает настраиваемые курсоры только для ограниченных коллекций (см. Справочную документацию mongodb ).

Как объяснено в связанном документе, вы можете выбрать опрос индексированной коллекции для новых элементов (я не знаю какой-либо реактивной интеграции для этого в Spring Data).

...