2015-11-27 33 views

risposta

8

È possibile iniettare codice javascript da un file javascript:

mongo 127.0.0.1/MyDatabase script.js 

con script.js:

var document = { 
    name : "document_name", 
    title : "document_title" 
}; 

db.MyCollection.insert(document); 

o direttamente:

mongo 127.0.0.1/MyDatabase --eval 'var document = {name : "document_name",title : "document_title",};db.MyCollection.insert(document);' 
0

Se non si vuole servire script da un file (cerco di non cercare il più possibile file esterni) o non utilizzare --eval op zione che può essere difficile da leggere se si dispone di molte voci, è possibile utilizzare un bashheredoc

È possibile digitare nel terminale:

-bash-4.1$ mongo mongodb://myServerAddress/myDbName <<EOF 
> db.myCollectionName.insert({ 
> name: "doc name", 
> title: "doc title" 
> }) 
> EOF 

Risultato:

MongoDB shell version v3.4.1 
connecting to: mongodb://myServerAddress/myDbName 
MongoDB server version: 3.0.7 
WARNING: shell and server versions do not match 
WriteResult({ "nInserted" : 1 }) 
bye 
-bash-4.1$ 

Se si desidera mantenere in uno script, è sufficiente rimuovere > che in realtà richiede un comando multilinea.

Per l'utilizzo in-script, dovrebbe essere come di seguito:

#!/usr/bin/env bash 

mongo mongodb://myServerAddress/myDbName <<EOF 
db.myCollectionName.insert({ 
    name: "doc name", 
    title: "doc title" 
}) 
EOF