Qual è il codice esatto che devo eseguire, per inserire un documento in un mongodb usando bash. Al momento sono in grado di guardare i documenti in mongodb tramite bash script up, ma l'inserimento non funziona.Come posso inserire un documento da uno script bash in mongodb?
5
A
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 bash
heredoc
È 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