MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come eseguire comandi mongo tramite script di shell? (il mio non funziona)

Crea il tuo my_script.js file con questo comando:

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

Inserisci il file di script nella directory corrente.


1. Esegui lo script JS dalla riga di comando del sistema operativo:

Dal prompt del sistema operativo, procedere come segue:

> mongo localhost/testDB my_script.js

Una volta eseguito il comando precedente, vedrai l'output come segue (simile, a seconda della versione di MongoDB e del sistema operativo (Windows, in questo 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


Ora, da Mongo Shell (ovvero, esegui mongo , e poi dal mongo richiesta):

mongo > use testDB
mongo > show collections

Vedrai il testColl elencato.

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

Questo è il documento creato nel testDB database e la raccolta testColl come da comando nel my_script.js .


2. Esegui lo script JS da Mongo Shell:

Inoltre, puoi eseguire my_script.js dall'interno della Mongo Shell .

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

Vedi ci sono due documenti con _id diversi valori dei campi.

NOTA: Penso che tu possa eseguire solo alcuni comandi da .js file.


3. Un altro esempio:

Crea un file JS chiamato script2.js con il seguente contenuto:

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

Nota il printjson il metodo shell stampa un documento nell'output della shell.

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


Riferimenti: