1. ホーム
  2. regex

[解決済み] MongoDBで'Not Like'演算子を使うには?

2022-10-08 10:24:23

質問

私はSQLを使用することができます Like 演算子を使って pymongo ,

db.test.find({'c':{'$regex':'ttt'}})

しかし、どのようにすれば Not Like 演算子を使うことができますか?

を試してみました。

db.test.find({'c':{'$not':{'$regex':'ttt'}})

が、エラーになりました。

OperationFailure: $notは正規表現を持つことができません。

どのように解決するのですか?

から ドキュメント :

not演算子は、$regex演算子との演算をサポートしていません。 演算子による操作をサポートしていません。代わりに // を使用するか、ドライバのインターフェイスで 言語の正規表現機能を使って正規表現オブジェクトを作成します。 オブジェクトを作成します。次の例では、パターンマッチを使用しています。 を使っています。

db.inventory.find( { item: { $not: /^p.*/ } } )

EDIT (@idbentley) さんの投稿です。

{$regex: 'ttt'} とは一般的に /ttt/ となります。

db.test.find({c: {$not: /ttt/}}

EDIT2 (@KyungHoon Kim)さんの投稿です。

python で、以下のものが動作します。

'c':{'$not':re.compile('ttt')}