Jaki jest dokładny kod, który muszę wykonać, aby wstawić dokument do mongody używając bash. W tej chwili jestem w stanie wyglądać dokumenty w mongodb przez skrypt bash, ale wstawianie nie działa.Jak mogę wstawić dokument ze skryptu bash do mongodb?
5
A
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ć bash
heredoc
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