diff --git a/core/src/main/java/com/mongodb/hadoop/input/MongoInputSplit.java b/core/src/main/java/com/mongodb/hadoop/input/MongoInputSplit.java index 1acc1a5a..146bdc5d 100644 --- a/core/src/main/java/com/mongodb/hadoop/input/MongoInputSplit.java +++ b/core/src/main/java/com/mongodb/hadoop/input/MongoInputSplit.java @@ -136,9 +136,11 @@ public void readFields( DataInput in ) throws IOException{ DBCursor getCursor(){ // Return the cursor with the split's query, etc. already slotted in for // them. - // todo - support limit/skip if ( _cursor == null ){ - _cursor = MongoConfigUtil.getCollection( _mongoURI ).find( _querySpec, _fieldSpec ).sort( _sortSpec ); + _cursor = MongoConfigUtil.getCollection( _mongoURI ).find( _querySpec, _fieldSpec ).sort( _sortSpec ).limit(_limit); + if (_skip > 0) { + _cursor.skip(_skip); + } if (_notimeout) _cursor.setOptions( Bytes.QUERYOPTION_NOTIMEOUT ); _cursor.slaveOk(); } @@ -160,7 +162,7 @@ BSONDecoder getBSONDecoder(){ @Override public String toString(){ - return "MongoInputSplit{URI=" + _mongoURI + ", keyField=" + _keyField + ", query=" + _querySpec + ", sort=" + _sortSpec + ", fields=" + _fieldSpec + '}'; + return "MongoInputSplit{URI=" + _mongoURI + ", keyField=" + _keyField + ", query=" + _querySpec + ", sort=" + _sortSpec + ", fields=" + _fieldSpec + ", limit=" + _limit + ", skip=" + _skip +'}'; } public MongoInputSplit(){ }