2011-07-19 11 views
14

Voglio solo eseguire uno script .js su un particolare database mongodb, ma non riesco a ottenere la sintassi corretta.Specificare quale database utilizzare nello script .js mongodb

echo "print(db.address.find().limit(1));" > test.js 
mongo test.js 

Come faccio a selezionare il database che sarà eseguito su, ho provato varie combinazioni di use foo senza successo.

> show dbs      
admin (empty) 
local (empty) 
foo 0.203125GB 
bar 0.203125GB 

Vorrei utilizzare foo in questo caso.

risposta

18
mongo <name of db> --eval "db.runCommand(<js in here>);" 

Oppure, se non avete uno script EseguiComando specifica, si può solo fare:

mongo <name of db> --eval "<js in here>;" 

Se si utilizza un valore di ritorno:

mongo <name of db> --eval "db.eval('return fnName()')" 

Per un file

mongo <name of db> some_instructions.js 
+0

Come specificare un file? cioè non mettere un grumo di javascript in quella funzione da linea di comando? – markdsievers

+0

Quanto sopra per un file dovrebbe funzionare. Il file deve terminare con .js –

+0

Grazie Chris, molto utile! – markdsievers

Problemi correlati