Consider sortBy header when performing findOneByQuery operation Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ab702664 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ab702664 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ab702664
Branch: refs/heads/camel-2.17.x Commit: ab702664950b024ba421a0c7f75f30a302a227fc Parents: 3d11e16 Author: Kris Boutilier <kris.boutil...@gmail.com> Authored: Mon Jun 6 16:56:42 2016 -0700 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Jun 8 14:31:54 2016 +0200 ---------------------------------------------------------------------- .../apache/camel/component/mongodb/MongoDbProducer.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ab702664/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java index c9ae6eb..207f564 100644 --- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java +++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java @@ -351,13 +351,17 @@ public class MongoDbProducer extends DefaultProducer { DBObject o = exchange.getIn().getMandatoryBody(DBObject.class); DBObject ret; + DBObject sortBy = exchange.getIn().getHeader(MongoDbConstants.SORT_BY, DBObject.class); DBObject fieldFilter = exchange.getIn().getHeader(MongoDbConstants.FIELDS_FILTER, DBObject.class); - if (fieldFilter == null) { - ret = dbCol.findOne(o); - } else { + + if (sortBy != null) { + ret = dbCol.findOne(o, fieldFilter, sortBy); + } else if (fieldFilter != null) { ret = dbCol.findOne(o, fieldFilter); + } else { + ret = dbCol.findOne(o); } - + Message resultMessage = prepareResponseMessage(exchange, MongoDbOperation.findOneByQuery); resultMessage.setBody(ret); resultMessage.setHeader(MongoDbConstants.RESULT_TOTAL_SIZE, ret == null ? 0 : 1);