DataX 求助,mongodbreader组件中query中包含isodate怎么搞

n6lpvg4x  于 2022-10-20  发布在  Go
关注(0)|答案(6)|浏览(469)

MongoDB:
.find({'behaviorDate':{'$gt':ISODate('2020-03-10T16:00:00Z'),'$lt':ISODate('2020-03-11 16:00:00Z')}})

DataX:
"query":"{"behaviorDate":{"$gte":"2020-03-10T16:00:00Z","$lt":"2020-03-11T16:00:00Z"}}"配置完全查不到数据。。。

gzszwxb4

gzszwxb41#

"query": "{"createDate": {"$gte": {"$date": 1593014400000}, "$lt": {"$date": 1593100800000}}}"
或者
"query": "{"createDate": {"$gte": "2020-06-25 00:00:00", "$lt": "2020-06-26 00:00:00"}}",

ut6juiuv

ut6juiuv2#

"query": "{"createDate": {"$gte": {"$date": 1593014400000}, "$lt": {"$date": 1593100800000}}}"
或者
"query": "{"createDate": {"$gte": "2020-06-25 00:00:00", "$lt": "2020-06-26 00:00:00"}}",

感谢大神帮助!经测试第一种(时间戳)是完全可以的!第二种好像是不行(0条结果),MongoDB用的不好,我是直接改的源码,增加queryFeature配置参数,根据指定fastjson的Feature将query字符串转为JSONObject,直接将日期部分字符串转为了java的Date类型,然后加入到Document中
FastJsonUtil
public static Feature getJsonFeature(String queryFeature) {
switch (queryFeature) {
case "AllowISO8601DateFormat":
return Feature.AllowISO8601DateFormat;
... }}
MongoReader
final Feature feature = FastJsonUtil.getJsonFeature(queryFeature);
final JSONObject queryObject = FastJsonUtil.parseObject(query, feature);
Document queryFilter = new Document(queryObject);
感觉mongo好多坑,刚上来客户端jar就不兼容,然后又搞这一出,作为mongo小白感觉好难
推荐大神第一种方法,第三种改源码比较麻烦,但fastjson功能比较强,不知道功能会不会强一点(瞎说),多谢大神指点!

vlju58qv

vlju58qv3#

你可以试试我写的mongodbreader插件,解决了很多bug,优化了查询速度
#738
https://github.com/liukunyuan/DataX/blob/master/mongodbreader/doc/mongodbreader.md

uttx8gqw

uttx8gqw4#

为啥不加datax的钉钉群,在群里问问题比较方便一些,也方便交流

sg2wtvxw

sg2wtvxw5#

为啥不加datax的钉钉群,在群里问问题比较方便一些,也方便交流

怎么加群

相关问题