最近我尝试使用官方文档中的 MongoDB-Connector,
JavaMongoRDD rdd = MongoSpark.load(jsc);
但演示将加载我的集合中的所有数据,
我只想在我的java或scala代码中运行此命令
db.pointer.find({"inserttime":{$lt:new Date(2018,0,4,7,0,10),$gte:new Date(2018,0,4,7,0,0)}},{"inserttime":1,})
我知道我可以RDD.filter() 用来获取我想要的数据。
但它会在第一时间查询所有数据,这不是我想要的。
编辑:
它提供了条件查询的任何方法,以减少查询时的结果数据。
像JDBC一样:
find(and(eq("status", "A"),or(lt("qty", 30), regex("item", "^p"))));
该文档使用聚合来过滤数据库级别的数据,因此您也可以这样做。
// the following example was not tested
BasicDBObject query = new BasicDBObject("$lt", new Date(2018,0,4,7,0,10);
query.put("$gte", new Date(2018,0,4,7,0,0));
JavaMongoRDD aggregatedRdd = rdd.withPipeline(singletonList(query));
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。