Pymongo の find_one 関数で奇妙な問題が発生しています。ローカル マシンでホストされている「cluster_db」というデータベースがあります。「クラスター」と呼ばれるコレクションがあります。mongo シェルでクエリを実行すると、次の出力が得られます。
> db
cluster_db
> db.clusters.findOne({_id:-8488068664808428000})
{
"_id" : NumberLong("-8488068664808427924"),
"members" : [
{
"participationCoeff" : 1,
"tweetID" : NumberLong("-8488068664808427924")
}
]
}
>
ここで、コードの初期化フェーズ中に、次のようにモジュール 'dbutil' で定義された定数があります。
DB_CONNECTION = MongoClient('localhost', 27017)
CLUSTER_DB_HANDLE = DB_CONNECTION['cluster_db']
この後、関数内で次の呼び出しを行っています。
dbutil.CLUSTER_DB_HANDLE.clusters.find_one({'_id':clusterID})
ただし、上記の呼び出しは常に「なし」を返します。MongoShell にアクセスして、まったく同じクエリを同じ clusterID で実行すると、結果が表示されます。
奇妙なエラーであることはわかっていますが、どういうわけか、これが起こっている理由を理解できません。それ以外の場所では、dbutil.CLUSTER_DB_HANDLE.clusters を使用して、cluster_db の「クラスター」コレクションを正常に呼び出すことができます。