MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como executar comandos do mongo através de scripts de shell? (o meu não funciona)


Crie seu my_script.js arquivo com este comando:
db.testColl.insertOne( { a: "hello" } )

Coloque o arquivo de script em seu diretório atual.


1. Execute o script JS a partir da linha de comando do sistema operacional:

No prompt do SO, faça isso:
> mongo localhost/testDB my_script.js

Depois que o comando acima for executado, você verá a saída da seguinte forma (semelhante, dependendo da sua versão do MongoDB e do sistema operacional (Windows, neste caso)):
MongoDB shell version v4.2.3
connecting to: mongodb://localhost:27017/testdb?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("456b350f-668f-4389-9901-7c456e2c50fe") }
MongoDB server version: 4.2.3


Agora, a partir do Mongo Shell (ou seja, faça mongo , e depois do mongo pronto):
mongo > use testDB
mongo > show collections

Você verá o testColl listados.
mongo > db.testColl.find()
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }

Este é o documento criado no testDB banco de dados e a coleção testColl conforme o comando no my_script.js .


2. Execute o script JS do Mongo Shell:

Além disso, você pode executar o my_script.js de dentro do Mongo Shell .
mongo > load("my_script.js")
true
mongo > db.test.find()
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }

Veja que existem dois documentos com diferentes _id valores de campo.

OBSERVAÇÃO: Acho que você pode executar apenas alguns comandos do .js Arquivo.


3. Outro exemplo:

Crie um arquivo JS chamado script2.js com o seguinte conteúdo:
db.test.find().forEach(printjson)

Observe o printjson O método shell imprime um documento na saída do shell.
mongo > load("script2.js")
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }



Referências: