En este artículo, aprenderemos cómo insertar múltiples documentos a la vez en una colección determinada utilizando los comandos nativos de MongoDB Shell.
Método MongoDB InsertMany ()
Como su nombre indica, el método InsertMany () nos permite especificar un conjunto de documentos e insertarlos todos a la vez en una colección dada.
A continuación se muestra la sintaxis del método InsertMany ():
db.recopilación.insertMany (
[,,…],
WriteConcern: ,
ordenado:
)
El parámetro es el siguiente:
- Documento: especifica una variedad de documentos para insertar en una colección dada.
- WriteConCern - Define los parámetros de preocupación de escritura que anula la preocupación de escritura predeterminada. Se utiliza una preocupación de escritura para definir el nivel de reconocimiento solicitado de MongoDB para Write Ops.
- Ordenado -define si la instancia de MongoDB debe ejecutar un inserto ordenado o desordenado.
El método debe devolver una declaración de reconocimiento que incluye una declaración booleana y el número de documentos insertados.
Echemos un vistazo a un ejemplo práctico.
Definir una colección
Comencemos creando una colección simple donde podemos insertar datos de muestra. Inicie sesión en el shell MongoDB y ejecute el comando:
$ Mongosh
db.CreateCollection ("Empleados")
El comando anterior debe crear una nueva colección llamada empleados.
Insertar múltiples documentos con el campo _id
MongoDB es una base de datos muy flexible. Nos permite insertar documentos sin especificar el campo _id. Por defecto, MongoDB generará un identificador único para cada documento insertado en la colección
El siguiente ejemplo muestra cómo usar el método InsertMany () para insertar múltiples documentos sin el campo _id.
db.empleados.insertmany ([
Nombre: "Ryan", Departamento: "Desarrollo del juego", Salario: 120000,
Nombre: "David", Departamento: "Desarrollo de backend", Salario: 108000,
Nombre: "Rachael", Departamento: "Desarrollo de pila completa", Salario: 110000,
Nombre: "James", Departamento: "Desarrollo de DevOps", Salario: 110000,
Nombre: "Peter", Departamento: "Desarrollo del juego", Salario: 123000,
])
Si ejecutamos la consulta anterior, debemos obtener una salida como se muestra:
"Reconocido": Verdadero,
"Insertedids": [
ObjectId ("632BD2F28B16030EEBD4FAD6"),
ObjectId ("632BD2F28B16030EEBD4FAD7"),
ObjectId ("632BD2F28B16030EEBD4FAD8"),
ObjectId ("632BD2F28B16030EEBD4FAD9"),
ObjectId ("632BD2F28B16030EEBD4FADA")
]
Lo anterior muestra un mensaje de reconocimiento y los valores de identificación generados automáticamente.
Podemos localizar los documentos insertados como:
db.empleados.encontrar()
El comando anterior debe devolver los documentos insertados como se muestra:
"_id": ObjectId ("632BD2F28B16030EEBD4FAD6"),
"Nombre": "Ryan",
"Departamento": "Desarrollo del juego",
"Salario": 120000.0
"_id": ObjectId ("632BD2F28B16030EEBD4FAD7"),
"Nombre": "David",
"Departamento": "Desarrollo de backend",
"Salario": 108000.0
"_id": ObjectId ("632BD2F28B16030EEBD4FAD8"),
"Nombre": "Rachael",
"Departamento": "Desarrollo completo de la pila",
"Salario": 110000.0
"_id": ObjectId ("632BD2F28B1603030EEBD4FAD9"),
"Nombre": "James",
"Departamento": "Desarrollo de DevOps",
"Salario": 110000.0
Insertar múltiples documentos con el campo _id
Si no deseamos que MongoDB genere un valor _ID, podemos especificar explícitamente los valores para la columna _id como se muestra en el siguiente ejemplo:
db.empleados.insertmany ([
_id: 1, nombre: "Ryan", Departamento: "Desarrollo del juego", Salario: 120000,
_id: 2, nombre: "David", Departamento: "Desarrollo de backend", Salario: 108000,
_id: 3, nombre: "Rachael", Departamento: "Desarrollo de pila completa", Salario: 110000,
_id: 4, nombre: "James", Departamento: "Desarrollo de DevOps", Salario: 110000,
_id: 5, nombre: "Peter", Departamento: "Desarrollo del juego", Salario: 123000,
])
En el ejemplo anterior, especificamos explícitamente los valores de la columna _id para cada documento insertado en la colección.
La consulta anterior debería regresar:
"Reconocido": Verdadero,
"Insertedids": [
1.0,
2.0,
3.0,
4.0,
5.0
]
Inserto desordenado
También podemos realizar un inserto desordenado configurando el parámetro ordenado en falso como se muestra a continuación:
db.empleados.insertmany ([
_id: 1, nombre: "Ryan", Departamento: "Desarrollo del juego", Salario: 120000,
_id: 2, nombre: "David", Departamento: "Desarrollo de backend", Salario: 108000,
_id: 3, nombre: "Rachael", Departamento: "Desarrollo de pila completa", Salario: 110000,
_id: 4, nombre: "James", Departamento: "Desarrollo de DevOps", Salario: 110000,
_id: 5, nombre: "Peter", Departamento: "Desarrollo del juego", Salario: 123000,
], ordenado: falso)
Esto es útil cuando se trabaja con documentos duplicados.
Conclusión
En esta publicación, cubrimos los fundamentos de trabajar con el método MongoDB InsertMany () para agregar múltiples documentos a una colección dada en un solo comando.