Возврат запроса последнего значения в MongoDB в исходном модуле Spring XD

Я хотел бы иметь возможность создать выражение запроса/запроса, которое я могу использовать в исходном модуле SprinXD MongoDB для возврата только последнего вставленного документа.

Кажется, что max-messages-per-poll не помогает (постраничные данные с помощью входящего адаптера mongo в spring интеграции)

Я знаю, как это сделать с помощью агрегации, findOne(), limit() и т. д., но я не нашел способа сделать это с объектом запроса.

Мой поток следующий:

mongodb --collectionName=Notifications --fixedRate=10000 --query={'$query':{}},{'$limit':1} | log

Но я все равно возвращаю все документы.

Любая помощь приветствуется.

Спасибо, Дэвид


person dmendezg    schedule 27.05.2015    source источник


Ответы (1)


Мы не можем сделать это только с этим простым исходным кодом MongoDB. Для этого требуется только строка JSON в стиле запроса MongoDB, но нет перехватчиков для предоставления таких параметров, как limit, skip, sort и т. д.

Таким образом, у вас должен быть процессорный модуль transformer в вашем потоке, чтобы отфильтровать все эти нежелательные записи из результата find.

Не стесняйтесь поднимать тикет JIRA против Spring Integration, чтобы улучшить MongoDbMessageSource принятие любого Query объекта, а не только String для простого BasicQuery.

person Artem Bilan    schedule 28.05.2015