2015-11-27 31 views

Odpowiedz

8

można wstrzyknąć kod JavaScript z pliku javascript:

mongo 127.0.0.1/MyDatabase script.js 

z script.js:

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

db.MyCollection.insert(document); 

lub bezpośrednio:

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

Jeśli nie chcesz serwuj skrypt z pliku (staram się nie odtwarzać plików zewnętrznych tak dużo, jak to możliwe) lub nie używaj --eval op nia, które mogą być trudne do odczytania, jeśli masz wiele wpisów, można użyć bashheredoc

można wpisać w terminalu:

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

Wynik:

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$ 

Jeśli chcesz zachować to w skrypcie, po prostu usuń >, co jest faktycznie monitem o polecenie wielowierszowe.

Do użytkowania w skrypcie, powinno być jak poniżej:

#!/usr/bin/env bash 

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