0

Pythonで実行されているWebサーバーがあります。彼はいくつかのアプリからいくつかのデータを取得しており、これらをMongoDBに保存する必要があります。私のMongoDBはシャーディングされています。ここで、WebサーバーにShardsMongoDBの量を認識させたいと思います。現時点では、彼はこれをcfgファイルから読み取ります。mongoDbにはprintshardingstatusという名前のステートメントがあり、uはすべてのシャードを見ることができます。そこで、Pythonserverからこのステートメントを呼び出そうとしました。しかし、それは不可能のようです。PymongoAPIにはそのような関数はありません。

だから私の質問は、PythonでMongoDBステートメントを実行して、MongoDBで直接渡されて実行される機会はありますか?

4

3 に答える 3

1

printShardingStatus用のサーバーコマンドはありません。これは単なるmongo(javascript)シェルヘルパー関数です。ヘルパーは、構成データベースに対するいくつかのクエリと、見栄えを良くするためのグループ化とフォーマットです。

javascriptシェルでどのように機能するかを知りたい場合は、関数からparens( "()")を削除するだけで、javascriptコードが出力されます。

これがjavascriptシェルからのコードです。

> printShardingStatus
function (configDB, verbose) {
   if (configDB === undefined) {
       configDB = db.getSisterDB("config");
   }
   var version = configDB.getCollection("version").findOne();
   if (version == null) {
       print("not a shard db!");
       return;
   }
   var raw = "";
   var output = function (s) {raw += s + "\n";};
   output("--- Sharding Status --- ");
   output("  sharding version: " +
   ...
于 2011-03-20T04:29:02.793 に答える
0

pymongoまたはmongoengineを試しましたか?次に、おそらく作者にメッセージを送信します...

于 2011-03-18T10:38:01.570 に答える
0

通常のコレクションと同じように、config databasrを取得して、shardsコレクションでfind()を実行するだけです。

于 2011-03-21T11:37:45.797 に答える