Java Apache Spark和MongoDb日期问题

Java Apache Spark和MongoDb日期问题,java,mongodb,date,apache-spark,Java,Mongodb,Date,Apache Spark,我正在尝试使用ApacheSpark根据日期范围从mongo提取数据 我的目标是 ObjectId("56a3c6a80000000000000000") 使用此objectId查询mongo时 db.myCollection.find({"_id":{"$gt":ObjectId("56a3c6a80000000000000000")}}).sort({_id:-1}).count(); 我得到了结果 2685088 我用计算机把它转换成时间 ObjectId("56a3c6a80

我正在尝试使用ApacheSpark根据日期范围从mongo提取数据

我的目标是

 ObjectId("56a3c6a80000000000000000")
使用此objectId查询mongo时

 db.myCollection.find({"_id":{"$gt":ObjectId("56a3c6a80000000000000000")}}).sort({_id:-1}).count();
我得到了结果

2685088
我用计算机把它转换成时间

 ObjectId("56a3c6a80000000000000000").getTimestamp().getTime()
结果如何

 1453573800000
现在我的apachespark查询是

config.set("mongo.input.query","{\"_id\": {\"$gt\": {\"$date\": 1453573800000}}}");
当我使用spark java代码执行此操作时,在控制台上,我可以看到

query={ "_id" : { "$gt" : { "$date" : "2016-01-23T18:30:00.000Z"}}}
但spark并没有给出任何结果,它正在执行整个mongo

更准确地说,我希望类似于mongo语句的东西在spark中执行

db.collection.find({_id:{$gt: ObjectId(Math.floor((new Date('2016/1/22'))/1000).toString(16) + "0000000000000000"), 
$lt: ObjectId(Math.floor((new Date('2016/1/23'))/1000).toString(16) +   "0000000000000000")}})
我找到了类似的课程


我不确定它是否也起作用。

你说的“它也在执行整个mongo”是什么意思?它正在搜索整个mongodb,而不是日期更大的“2016-01-23”