2
我尝试使用以下mongoexport命令搜索出来的文字表情符号从蒙戈数据库导出:mongoexport用正则表达式查询
mongoexport -d <db> -c <col> -f text -q '{text: /.*:\)/}'
但是当我尝试执行命令mongoexport回报:
assertion: 10340 Failure parsing JSON string near: text: /.*:
我曾尝试使用了正确的括号的十六进制转义:
mongoexport -d <db> -c <col> -f text -q '{text: /.*:\x29/}'
,但我得到的S在相同的位置出现错误。看来mongoexport解析器在遇到'\'时停止。我很难相信mongoexport有这个限制(因为它使得正则表达式几乎不可能),所以我做错了什么?
当在mongo命令shell中查询时,括号必须转义,否则在正则表达式(shell)中会得到“Thu Oct 25 10:29:26 SyntaxError:unmatched) :1“错误。无论是否使用$ regex –
都会发生这种情况,但是你完全正确。该表达式不需要进行转义解析。但是现在我没有导出任何记录 - 这可能是我的数据库或集合描述的问题。 –
嗯,这不是数据库或集合的问题。一个简单的正则表达式 - 'text:/.*your.*/'--找到并导出记录,但带有正确paren的正则表达式 - 'text:/.*:).*/' - 生成没有记录。从mongo shell查询中,我知道有超过700个具有该特定模式的文档,因此出现其他问题 –