Вот решение SOlved ссылка для приведенного ниже кода. Пожалуйста, ссылка ссылка для более подробной информации
input {
jdbc {
jdbc_driver_library => "mongojdbc1.2.jar"
jdbc_driver_class => "com.dbschema.MongoJdbcDriver"
jdbc_connection_string => "jdbc:mongodb://DB_ADDRESS:27017/DB_NAME"
jdbc_validate_connection => true
jdbc_user => ""
clean_run => false
record_last_run => true
last_run_metadata_path => "/path/.logstash_jdbc_last_run"
schedule => "*/10 * * * * *"
jdbc_default_timezone => "YOUR_TIMEZONE"
statement =>
"
//well, actually this is JavaScript code. And was written in pure blood :(
var lastValue = :sql_last_value; //the last saved date that was scheduled to run query for
var HALF_HOUR_OFFSET = 1800000;
var extractedDate = lastValue.substring(0,10); //parsing the date of the last saved date
var year = Number(extractedDate.substring(0,4));
var month = Number(extractedDate.substring(5,7));
var day = Number(extractedDate.substring(8,10));
var extractedTime = lastValue.substring(11,23); //parsing the time of the last saved date
var hour = Number(extractedTime.substring(0,2));
var minute = Number(extractedTime.substring(3,5));
var seconds = Number(extractedTime.substring(6,8));
var miliseconds = Number(extractedTime.substring(9,12));
var upperEpoch = new Date(year,month-1,day,hour,minute,seconds,miliseconds).getTime(); //dates start from 0, that's why the minus 1
var bottomEpoch = upperEpoch - HALF_HOUR_OFFSET;
db.DB_COLLECTION.find({ COLLECTION_FIELD: { $gte : bottomEpoch, $lte: upperEpoch} },{'_id': false}); //we omit the 'id' since it irrelevant and also cause deserialize exception
"
}
}