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でサポートされていないコマンドのようです。基本的なコマンドだけどほんとかなぁ・・時間を見つけて調査してみようと思います・・