sql >> データベース >  >> NoSQL >> MongoDB

Mongodb:Java(およびJavaScript)でのdb.printShardingStatus()/ sh.status()呼び出し

    シェルのヘルパー関数の多くは、サーバー側のコード実行には使用できません。 printShardingStatus()の場合 、出力の印刷に使用するコンソールがなく、文字列を返したいので、それは理にかなっています。ありがたいことに、シェル関数のソースをプルアップして、アプリケーションに再実装できるはずです(たとえば、直接印刷する代わりに、返された文字列を連結します)。

    $ mongo
    MongoDB shell version: 2.2.0
    connecting to: test
    > db.printShardingStatus
    function (verbose) {
        printShardingStatus(this.getSiblingDB("config"), verbose);
    }
    

    それでは、printShardingStatus()を見てみましょう。 関数...

    > printShardingStatus
    function (configDB, verbose) {
        if (configDB === undefined) {
            configDB = db.getSisterDB("config");
        }
        var version = configDB.getCollection("version").findOne();
    
        // ...
    }
    

    すべての出力ステートメントを文字列連結に変換する前に、他のDBメソッドがすべて使用可能であることを確認する必要があります。パフォーマンスの面では、この関数の内部をJavaに移植し、サーバー側のJS評価を完全に回避するのが最善の選択肢だと思います。 printShardingStatus()を深く掘り下げた場合 関数の場合、find()を発行しているだけであることがわかります。 構成データベースといくつかのgroup() クエリ。

    JSの評価に固執し、このコードをJavaアプリケーション内に保持したくない場合は、JS関数のサーバー側への保存



    1. 特定のテストでflapdoodle埋め込みmongodbを無効にする方法

    2. 数値フィールドのクエリのようなSpringブートmongoDB-整数/倍精度

    3. $ arrayElemAtを使用して、MongoDB $ Projectionのその要素からフィールドを削除するにはどうすればよいですか?

    4. node.JSExpressパスポートルーティング