DataX
DataX copied to clipboard
求助,mongodbreader组件中query中包含isodate怎么搞
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"}}"配置完全查不到数据。。。
"query": "{"createDate": {"$gte": {"$date": 1593014400000}, "$lt": {"$date": 1593100800000}}}" 或者 "query": "{"createDate": {"$gte": "2020-06-25 00:00:00", "$lt": "2020-06-26 00:00:00"}}",
"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功能比较强,不知道功能会不会强一点(瞎说),多谢大神指点!
你可以试试我写的mongodbreader插件,解决了很多bug,优化了查询速度 https://github.com/alibaba/DataX/issues/738 https://github.com/liukunyuan/DataX/blob/master/mongodbreader/doc/mongodbreader.md
为啥不加datax的钉钉群,在群里问问题比较方便一些,也方便交流
为啥不加datax的钉钉群,在群里问问题比较方便一些,也方便交流
怎么加群
钉钉群满了
可以 "query": "{"createDate": {"$gte": {"$date": 1593014400000}, "$lt": {"$date": 1593100800000}}}" 或者 "query": "{"createDate": {"$gte": {"$date": '2024-01-01T00:00:00Z'}, "$lt": {"$date": '2024-01-01T00:00:00Z'}}}"