2

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 の「クラスター」コレクションを正常に呼び出すことができます。

4

2 に答える 2

0

clusterID == -8488068664808428000ですか?CLUSTER_DB_HANDLE.clusters.find_one({'_ id':-8488068664808428000})を試してみませんか?

于 2013-02-19T12:34:07.233 に答える