使用spark查询mongodb

时间:2016-01-23 07:25:10

标签: mongodb date apache-spark

我正在使用apache spark从mongo中提取大量数据。

我的mongo数据就像

{ "_id" : ObjectId("56a3287a45ce7cc14e2c4a84"), "Product" : "Id","CreatedOn" : ISODate("2016-01-23T01:47:50Z")}

我的火花查询是

config.set("mongo.input.query","{CreatedOn: {'$gt': new  Date(1455561000000)}}).sort({_id:-1}");

给我以下例外

Caused by: com.mongodb.util.JSONParseException: 
{CreatedOn: {'$gt': new  Date(1455561000000)}}).sort({_id:-1}

相同的查询

db.mycollection.find({CreatedOn: {'$gt': new  Date(1455561000000)}}).sort({_id:-1}"),

如果我在mongo shell上运行,它运行正常。

我正在使用java来执行代码。

1 个答案:

答案 0 :(得分:0)

mongo.input.query应该是一个有效的JSON字符串,你传递的内容显然不是一个。在严格的模式下,它应该或多或少地像这样(在需要时转义引号):

{"CreatedOn": {
    "$gt": {"$date": "2016-01-05T18:30:00Z"}
    "$lt": {"$date": "2016-01-22T18:30:00Z"}
}}

我怀疑是否可以通过这种方式传递排序,尤其是因为$orderby已被弃用。