DataX icon indicating copy to clipboard operation
DataX copied to clipboard

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

Open 983886283 opened this issue 4 years ago • 7 comments

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"}}"配置完全查不到数据。。。

983886283 avatar Jun 24 '20 12:06 983886283

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

liukunyuan avatar Jun 26 '20 16:06 liukunyuan

"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功能比较强,不知道功能会不会强一点(瞎说),多谢大神指点!

983886283 avatar Jun 27 '20 01:06 983886283

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

liukunyuan avatar Jun 28 '20 09:06 liukunyuan

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

liukunyuan avatar Jun 28 '20 09:06 liukunyuan

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

怎么加群

LiuShuaiaCai avatar Jul 28 '21 10:07 LiuShuaiaCai

钉钉群满了

hydeboy avatar Dec 01 '21 03:12 hydeboy

可以 "query": "{"createDate": {"$gte": {"$date": 1593014400000}, "$lt": {"$date": 1593100800000}}}" 或者 "query": "{"createDate": {"$gte": {"$date": '2024-01-01T00:00:00Z'}, "$lt": {"$date": '2024-01-01T00:00:00Z'}}}"

xhyan0427 avatar Feb 23 '24 06:02 xhyan0427