Docs Menu
Docs Home
/ /
Mongo Shell heredado

Escribir guiones para el mongo Shell

Advertencia

El siguiente documento se refiere a la mongo Shell, incluido en la descarga del servidor MongoDB. Para obtener información sobre el nuevo Shell MongoDB (),mongosh consulte la documentación de Mongosh.

Para comprender las diferencias entre las dos capas, consulte Comparación de las mongo capas mongosh y.

Puede escribir scripts para el shell en JavaScript que manipulen datos en MongoDB o realicen operaciones mongo administrativas.

Este tutorial proporciona una introducción para escribir JavaScript que utilice el mongo shell para acceder a MongoDB.

Desde el shell o desde un archivo JavaScript, puede crear mongo Mongo() instancias de conexiones de base de datos utilizando el constructor:

new Mongo()
new Mongo(<host>)
new Mongo(<host:port>)

Considere el siguiente ejemplo que instancia una nueva conexión a la instancia de MongoDB que se ejecuta en localhost en el puerto predeterminado y establece la db variable global en myDatabase usando el getDB() método:

conn = new Mongo();
db = conn.getDB("myDatabase");

Si se conecta a una instancia de MongoDB que aplica control de acceso, puede usar el método para db.auth() autenticarse.

Además, puede usar el método para conectarse a la instancia de MongoDB. El siguiente ejemplo se conecta a la instancia de MongoDB que se ejecuta connect() en localhost con el puerto (no predeterminado) 27020 y establece la db variable global:

db = connect("localhost:27020/myDatabase");

Tip

Nota

A partir de la versión 4.2, el shellmongoproporciona el métodoisInteractive()que devuelve un valor booleano que indica si el shellmongose está ejecutando en modo interactivo o de script.

Al escribir scripts para el shell, tenga en cuenta lo mongo siguiente:

  • Para establecer la variable global db, utilice el métodogetDB()o el métodoconnect(). Puede asignar la referencia de la base de datos a una variable distinta de db.

  • Las operaciones de escritura en el mongo shell utilizan la preocupación de escritura { w: 1 } por defecto. Si se realizan operaciones masivas, utilice los Bulk() métodos.

  • No puedes usar ningún ayudante de shell (poruse <dbname> ejemplo,,, show dbs etc.) dentro del archivo JavaScript porque no son JavaScript válidos.

    La siguiente tabla asigna los mongo ayudantes de shell más comunes a sus equivalentes de JavaScript.

    Ayudantes de Shell
    Equivalentes de JavaScript

    show dbs, show databases

    db.adminCommand('listDatabases')
    use <db>
    db = db.getSiblingDB('<db>')
    show collections
    db.getCollectionNames()
    show users
    db.getUsers()
    show roles
    db.getRoles({showBuiltinRoles: true})
    show log <logname>
    db.adminCommand({ 'getLog' : '<logname>' })
    show logs
    db.adminCommand({ 'getLog' : '*' })
    it
    cursor = db.collection.find()
    if ( cursor.hasNext() ){
    cursor.next();
    }
  • En el modo interactivo, el mongo shell imprime los resultados de las operaciones, incluido el contenido de todos los cursores. En scripts, utiliza la función de JavaScript print() o la función printjson() específica mongo, que retorna JSON formateado.

    Ejemplo

    Para imprimir todos los elementos en un cursor de resultado en scripts de shell, utilice el siguiente mongo modismo:

    cursor = db.collection.find();
    while ( cursor.hasNext() ) {
    printjson( cursor.next() );
    }

Desde el indicador del sistema, utilice el shell para evaluar mongo JavaScript.

Utilice la --eval opción del shell para pasarle al shell un fragmento de JavaScript, como en lo mongo siguiente:

mongo test --eval "printjson(db.getCollectionNames())"

Esto devuelve la salida de db.getCollectionNames() utilizando el mongo shell conectado mongod mongos a 27017 la localhost instancia o que se ejecuta en el puerto en la interfaz.

Puede especificar un .js archivo en el mongo shell, y ejecutará JavaScript directamente. Considere el siguiente mongo ejemplo:

mongo localhost:27017/test myjsfile.js

Esta operación ejecuta el myjsfile.js script en un shell que se conecta a mongo la test base de datos en la instancia accesible a través de mongod la localhost interfaz en el 27017 puerto.

Como alternativa, puede especificar los parámetros de conexión de MongoDB dentro del archivo JavaScript mediante el Mongo() constructor.Consulte "Abrir nuevas conexiones" para obtener más información.

Puede ejecutar un .js archivo desde dentro de,mongosh load() utilizando la función, como en lo siguiente:

load("myjstest.js")

Esta función carga y ejecuta el archivo myjstest.js.

El métodoload()acepta rutas relativas y absolutas. Si el directorio de trabajo actual demongoshes /data/db y myjstest.js reside en el directorio /data/db/scripts, las siguientes llamadas dentro demongoshserían equivalentes:

load("scripts/myjstest.js")
load("/data/db/scripts/myjstest.js")

Nota

No existe una ruta de búsqueda para la función. Si el script deseado no se encuentra en load() mongosh el directorio de trabajo actual ni en la ruta completa especificada, no podrá acceder al archivo.

Volver

Acceda a la ayuda de Mongo Shell

En esta página