MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongodb:извикване на db.printShardingStatus() / sh.status() в Java (и JavaScript)

Много от помощните функции на обвивката не са достъпни за изпълнение на код от страна на сървъра. В случай на 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Конфигурацията за автоматично зареждане не зарежда MongoDB класове

  2. Грешка при показване на php

  3. Импортиране на тип данни за дата с помощта на mongoimport

  4. MongoDB dropIndex()

  5. Как да съедините две колекции в mongoose