1. ホーム
  2. mongodb

[解決済み] PyMongoで正規表現クエリを実行する

2022-05-15 02:33:49

質問

MongoDBサーバに対してPyMongoを使って正規表現クエリを実行しようとしています。ドキュメントの構造は以下の通りです。

{
  "files": [
    "File 1",
    "File 2",
    "File 3",
    "File 4"
  ],
  "rootFolder": "/Location/Of/Files"
}

パターン*Fileにマッチするファイルをすべて取得したい。私はこれを次のようにやってみました。

db.collectionName.find({'files':'/^File/'})

しかし、何も戻ってきません。MongoDBのドキュメントによると、これは可能なはずなのですが、私は何かを見逃しているのでしょうか?Mongoコンソールでクエリを実行するとうまくいきますが、これはAPIがサポートしていないということでしょうか、それとも私の使い方が間違っているのでしょうか?

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

正規表現による検索は、pymongoでは少し異なる方法で行われますが、同じように簡単です。

正規表現検索は以下のように行われます。

db.collectionname.find({'files':{'$regex':'^File'}})

これは、FilesプロパティにFileで始まる項目があるすべてのドキュメントにマッチします。