PythonでMongoDB操作時に”TypeError: ‘Collection’ object is not callable. If you meant to call the ‘createIndex’ method on a ‘Collection’ object it is failing because no such method exists.”エラーが出る

PythonでのMongoDB操作でつまづいたのでメモ。

PythonでMongoDBの操作をしようとすると、特定のメソッドを利用した際に以下のようなエラーがでることがあります。

TypeError: 'Collection' object is not callable. If you meant to call the 'createIndex' method on a 'Collection' object it is failing because no such method exists.

こちらのStack Overflowの記事が答えを教えてくれました!

https://stackoverflow.com/questions/53175729/method-createindex-not-callable-on-a-collection

原因は、MongoDBの操作をPymongo経由で実施した場合、Methodの名前がオリジナルのものから変わっていたためであった。

createIndex()メソッドは、Pymongoで操作するときはcreate_index()と呼び出す必要があるようだ。Pythonの命名規則の制限か何かでしょうか・・・

ちなみに、私はpymongoを使ってMongoDB API経由でCosmosDBのコンテナを更新しようとしたのですが、create_index()を使ってIndexを作成しようとすると、”Command Not Supported”エラーが・・・。

どうやらCosmosDBのMongo DB APIでサポートされていないコマンドのようです。基本的なコマンドだけどほんとかなぁ・・時間を見つけて調査してみようと思います・・

この記事を気に入っていただけたらシェアをお願いします!
ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。