sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo ejecutar comandos mongo a través de scripts de shell? (el mio no funciona)

Crea tu my_script.js archivo con este comando:

db.testColl.insertOne( { a: "hello" } )

Coloque el archivo de script en su directorio actual.


1. Ejecute JS Script desde la línea de comandos del sistema operativo:

Desde el indicador del sistema operativo, haga esto:

> mongo localhost/testDB my_script.js

Una vez que se ejecuta el comando anterior, verá el resultado de la siguiente manera (similar, según su versión de MongoDB y el sistema operativo (Windows, en este 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


Ahora, desde Mongo Shell (es decir, haga mongo , y luego desde el mongo indicación):

mongo > use testDB
mongo > show collections

Verá el testColl listado.

mongo > db.testColl.find()
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }

Este es el documento creado en testDB base de datos y la colección testColl según el comando en my_script.js .


2. Ejecute JS Script desde Mongo Shell:

Además, puede ejecutar my_script.js desde dentro del Mongo Shell .

mongo > load("my_script.js")
true
mongo > db.test.find()
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }

Ver que hay dos documentos con diferente _id valores de campo.

NOTA: Creo que solo puedes ejecutar algunos comandos desde .js archivo.


3. Otro ejemplo:

Cree un archivo JS llamado script2.js con el siguiente contenido:

db.test.find().forEach(printjson)

Tenga en cuenta el printjson El método shell imprime un documento en la salida del shell.

mongo > load("script2.js")
{ "_id" : ObjectId("5e4ea0d05816162b300b0346"), "a" : "hello" }
{ "_id" : ObjectId("5e4ea10f276cde8fc5fedec5"), "a" : "hello" }


Referencias: