4

次のmongoexportコマンドを使用してmongoデータベースからエクスポートして、テキスト絵文字を検索しようとしています:

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

しかし、コマンド mongoexport を実行しようとすると、次のように返されます。

アサーション: 10340 JSON 文字列の解析に失敗しました: テキスト: /.*:

右括弧に16進エスケープを使用しようとしました:

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

しかし、同じ場所で同じエラーが発生します。「\」に遭遇すると、mongoexport パーサーが停止するようです。mongoexport にこの制限があるとは信じがたいです (正規表現の使用がほぼ不可能になるため)。

4

1 に答える 1

2

右の括弧をエスケープしようとしている理由を聞いてもよろしいですか? 右括弧の前にエスケープなしでクエリを試してみましたが、うまくいきました:'{text: /.*:)/}'

別の方法として、クエリでエスケープが必要な場合は、エスケープ記号をエスケープする必要があります。これは、文字列が 2 回 (シェル、データベースの順に) 解析されるためです。'{text: /.*:\\)/}'

于 2012-10-25T17:21:30.327 に答える