2013-10-27 14 views
7

Durante la riproduzione della guida della console mognodb, ho trovato un metodo db.getSisterDB().mongodb perché è necessario getSisterDB

E sono curioso di sapere qual è lo scopo di questo metodo. Guardare attraverso la documentazione di mongodb e una rapida ricerca su google non ha prodotto risultati soddisfacenti.

Digitando db.getSisterDb.help genera un errore e digitando db.getSisterDB dà la seguente definizione di questo metodo:

function (name){ 
    return this.getMongo().getDB(name); 
} 

che suggerisce che questo è solo un involucro intorno getDB. Il mio suggerimento che è utilizzato per accedere ai database in un set di repliche, ma vorrei ascoltare una persona che può darmi una spiegazione più approfondita.

risposta

13

Nella shell, db è un riferimento al database corrente. Se si desidera eseguire una query su un DB diverso nella stessa istanza di mongod, il modo per ottenere un riferimento corretto sarebbe utilizzare questo metodo (che ha un alias, più gender neutral getSiblingDB).

Se si voleva utilizzare la sintassi più a lungo, si potrebbe: db.getMongo().getDB(name) si ottiene la stessa cosa di db.getSiblingDB(name) o db.getSisterDB(name) ma il primo è più digitare.

Tutte le operazioni precedenti funzionano allo stesso modo in mongod autonomo, oltre a set di repliche (e cluster).

0

Sto per aggiungere alla risposta accettata perché non ho trovato quello che volevo come primo risultato.

getSiblingDB esiste una per scripting, dove l'helper use non è disponibile

getSiblingDB è la più recente tra l'identico getSisterDB, quindi utilizzare fratelli come getSisterDB non è più in documentazione

quando utilizzato nel guscio, getSiblingDB serve allo scopo di ottenere un database senza modificare la variabile db

Problemi correlati