资讯专栏INFORMATION COLUMN

mongoexport带过滤条件导出

IT那活儿 / 3346人阅读
mongoexport带过滤条件导出
点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!



mongodb数据库
mongodb跟其他数据库产品一样,提供了数据导出工具,包含导出bson文件的mongodump和导出json/csv的mongoexport,并且都支持带过滤条件导出数据。



CSV数据报错
某日,接客户反馈使用Mongoexport导出CSV数据报错,如下图:
导出命令是:
mongoexport -u root --authenticationDatabase=admin -d c***prod -c Vr***foDO --type=csv -f 
contentId,to**me,createdTim,t**idDa -q {$and:[{ $or: [ {contentId:{ $regex:/^6009266/}}, {contentId:{
$regex:/^6009261/}} ]} ,{createdTime : {$gte : new
Date(1610553655000)}} ]}
  -o /home/mongo/t**id_20220210.csv
看到报错信息,我首先想到的就是查询子句写错了,但是当我将子查询放到数据库里面查询时并没有报错。
此时,我一脸懵逼,仔细检查了符号之类的也没有问题。问了度娘,基本上所有的说法都是什么加双引号转义之类的,一一尝试之后报错依旧。
通过仔细查询官方文档,发现如下提示:

Extend JSON是什么鬼?为什么以前使用query条件导出时没有报错呢 ??接着往下看。
如下图所述,从4.2版开始,mongoexport等工具必须遵循Extended JSON 2.0。
当前我们操作的数据库版本确实是新装不久的4.2版,所以子查询必须是要经扩展JSON。



什么是扩展JSON
  1. Extend JSON包含规范扩展JSON和宽松扩展JSON两种格式,但是不论哪种格式,JSON文档中的所有字符串都应有双引号,而Mongodb的增删改查的格式也是个json,所以也应用双引号包起来。
  2. 在规范的扩展JSON中,每一个数值都必须包含其字段类型,如时间数据必须是{"$date": {"$numberLong": "1610553655000"}},长整型数据 {"$numberLong": 50}。
下图摘自官方文档
是扩展JSON两种格式各类型数据的数据格式:

所以,综上分析,修改本例导出命令的子查询为:
{"$and":[{ "$or": [ {"contentId":{ "$regex":"^6009266"}}, 
{"contentId":{ "$regex":"^6009261"}} ]},{"createdTime" :
{"$gte" : {"$date": {"$numberLong": "1610553655000"}}}} ]}




END




本文作者:刘运彬

本文来源:IT那活儿(上海新炬王翦团队)

​​

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129524.html

相关文章

  • mongodb 备份、还原、导入、导出简单操作

    摘要:还原导出的表数据部分字段的表数据导入还原文件 一、 mongodump备份数据库 1.一般常用的备份命令格式 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果想导出所有数据库,可以去掉-d 2.导出数据库[root@local ~]# mongodump -h 127.0.0.1 --port 30216 -d t...

    KitorinZero 评论0 收藏0
  • 【mongoDB运维篇②】备份与恢复(导入与导出)

    摘要:导入导出可以操作的是本地的服务器也可以是远程的服务器所以都有如下通用选项主机端口用户名密码导出库名表名列名查询条件导出的文件名导出格式便于和传统数据库交换数据导出库下面的表从哪里导出导出的文档数导出库下 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的服务器所以,都有如下通用选项: -h host 主机 --port port 端口 -u username 用...

    lakeside 评论0 收藏0
  • MongoDB备份与恢复

    摘要:一的导入与导出导出工具概念中的工具可以把一个导出成格式或格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。恢复工具概念是从备份中恢复数据的工具,它主要用来获取的输出结果,并将备份的数据插入到运行的中。 一、Mongodb的导入与导出 1.1、导出工具:mongoexport 概念: mongoDB中的mongoexport工具可以把一个collection导出成J...

    2450184176 评论0 收藏0
  • mongo备份

    摘要:转载请注明出处原文排版地址点击获取更好阅读体验全局的备份恢复备份迁移到本机恢复挂载路径如下将备份文件复制到这个文件夹,在进入指定集合的导入导出导出数据库中指定集合的数据导出集合中指定字段的数据,导出的文件格式为 转载请注明出处 http://www.paraller.com 原文排版地址 点击获取更好阅读体验 全局的备份恢复 备份 mongodump -d yea -o /data...

    timger 评论0 收藏0
  • mongo备份笔记

    摘要:转载请注明出处原文排版地址点击跳转全局的备份恢复备份迁移到本机恢复复制到这个文件夹进入进入指定集合的导入导出导出数据库中指定集合的数据导出集合中指定字段的数据,导出的文件格式为根据条件导出数据 转载请注明出处 http://www.paraller.com 原文排版地址 点击跳转 全局的备份恢复 备份 mongodump -d yea -o /data/db/3.1_2017_07...

    Jiavan 评论0 收藏0
  • mongodb数据库的导出备份

    摘要:进入装有的路径下这里有导出数据表后面是数据库后面是是导出的文件名去文件夹下找到文件导出数据库主机加端口导出的地址恢复数据库 1.进入装有mongoexport的路径下 cd /usr/local/mongodb/bin(这里有mongoexport mongoimport mongodump mongorestore) 2.导出数据表 ./mongoexport -d advers...

    robin 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<