4

我正在尝试使用以下 mongoexport 命令从 mongo 数据库中导出以搜索文本表情符号:

mongoexport -d <db> -c <col> -f text -q '{text: /.*:\)/}'

但是当我尝试执行命令 mongoexport 返回:

断言:10340 解析 JSON 字符串附近失败:文本:/.*:

我尝试使用十六进制转义符来获得正确的括号:

mongoexport -d <db> -c <col> -f text -q '{text: /.*:\x29/}'

但我在同一个位置遇到同样的错误。mongoexport 解析器在遇到“\”时似乎停止了。我很难相信 mongoexport 有这个限制(因为它几乎不可能使用正则表达式),那么我做错了什么?

4

1 回答 1

2

我能问一下你为什么要逃避正确的父母吗?我在正确的括号之前尝试了没有转义的查询,它起作用了:'{text: /.*:)/}'

作为替代方案,如果您需要在查询中转义,那么您必须转义转义符号,因为字符串被解析两次(shell,然后是数据库):'{text: /.*:\\)/}'

于 2012-10-25T17:21:30.327 回答