Docs Menu
Docs Home
/ /

renameCollection

El comando renameCollection renombra una colección con el nuevo nombre especificado en la configuración de almacenamiento. Este comando solo se puede ejecutar en la base de datos admin, que es el usuario de Atlas. base de datos de autenticación. El comando no admite el cambio de nombre de colecciones creadas dinámicamente por el función collectionName()de recopilación de comodines ().

db.runCommand({ "renameCollection": "<namespace>", "to": "<namespace>", "dropTarget": true|false })
Campo
Tipo
Descripción
¿Obligatorio?

renameCollection

string

El espacio de nombres de la colección, que incluye el nombre de la base de datos, un punto () como. separador y el nombre de la colección. Por ejemplo: <database>.<collection>

to

string

El nuevo nombre de la colección, especificado como espacio de nombres, incluye el nombre de la base de datos, un punto. () como separador y el nombre de la nueva colección. El nuevo nombre:

  • Debe ser único si se omite dropTarget o se establece en false.

  • Puede ser el nombre de una colección existente en la misma base de datos si dropTarget se especifica y se establece en true (esdropTarget == true decir,).

dropTarget

booleano

Especifica si se debe cambiar el nombre de la colección a un nombre ya existente en la base de datos. El valor puede ser true o false. El valor predeterminado es false, lo que significa que el nuevo nombre de la colección debe ser único. Si es true, se sobrescriben los datos de la colección existente con los datos de la colección renombrada.

no

El comando devuelve el siguiente resultado si se ejecuta correctamente. Puede verificar los resultados ejecutando los comandos en "Verificar recopilación". Si falla, consulte la sección "Solucionar errores" a continuación para obtener soluciones recomendadas.

{ "ok" : 1 }

Estos ejemplos utilizan los siguientes databases y collections en la configuración de almacenamiento:

"databases" : [
{
"name": "multiCollDB",
"collections": [
{
"name": "air_airlines",
"dataSources": [{
"storeName" : "egS3Store",
"path" : "egData/air_airlines.json"
}]
},
{
"name": "airbnb",
"dataSources": [{
"storeName" : "sampleS3Store",
"path" : "json/airbnb/*"
}]
},
{
"name": "weather",
"dataSources": [{
"storeName" : "sampleS3Store",
"path" : "json/weather/*"
}]
}
]
}
]

El siguiente comando renameCollection renombra la colección air_airlines en la base de datos llamada multiCollDB a airlines.

use admin
db.runCommand({ "renameCollection": "multiCollDB.air_airlines", "to": "multiCollDB.airlines" })

El comando anterior imprime la siguiente salida:

{ "ok" : 1 }

El siguiente comando renameCollection:

  1. Cambia el nombre de la colección weather en la base de datos llamada multiCollDB a airbnb, que es el nombre de una colección existente en la misma base de datos.

  2. Reemplaza los datos de la colección airbnb con los datos de la colección weather.

use admin
db.runCommand({ "renameCollection": "multiCollDB.weather", "to": "multiCollDB.airbnb", "dropTarget": true })

El comando anterior imprime la siguiente salida:

{ "ok" : 1 }

El siguiente comando muestra que la colección se renombró exitosamente:

> show collections
airbnb
> db.runCommand({ "storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "egS3Store",
"provider" : "s3",
"region" : "us-east-2",
"bucket" : "sbx-data-federation",
"delimiter" : "/",
"prefix" : ""
}
],
"databases" : [{
"name" : "multiCollDB",
"collections" : [{
"name": "airbnb",
"dataSources" : [
{
"storeName" : "egS3Store",
"path" : "/json/airbnb"
}
]
}]
}]
}
}

Puede verificar que el comando se realizó correctamente ejecutando cualquiera de los siguientes comandos:

show collections
db.runCommand({ "storageGetConfig" : 1 })

Si el comando falla, devuelve uno de los siguientes errores:

{
"ok": 0,
"errmsg": "renameCollection can only be run against the admin database",
"code": 13,
"codeName": "Unauthorized"
}

Solución: Cambia a la base de datos admin y vuelve a ejecutar el comando. Para cambiar a la base de datos admin, ejecuta el comando use admin.

{
"ok": 0,
"errmsg": "Invalid namespace specified '<ns>'",
"code": 73,
"codeName": "InvalidNamespace"
}

Solución: verifique que el espacio de nombres especificado (base de datos o colección) exista en la configuración de almacenamiento.

{
"ok": 0,
"errmsg": "Invalid target namespace: <namespace>",
"code": 73,
"codeName": "InvalidNamespace"
}

Solución: asegúrese de que el espacio de nombres (base de datos o colección) especificado con el to campo sea válido.

{
"ok": 0,
"errmsg": "target namespace exists",
"code": 48,
"codeName": "NamespaceExists"
}

Solución: Compruebe que no exista una colección con el nombre especificado. El nombre de la colección debe ser único si dropTarget se omite o se establece false en.

{
"ok": 0,
"errmsg": "source namespace does not exist",
"code": 26,
"codeName": "NamespaceNotFound"
}

Solución: Verifique que el nombre de la base de datos sea válido y exista en la configuración de almacenamiento.

{
"ok": 0,
"errmsg": "cannot rename a collection created from a wildcard",
"code": 73,
"codeName": "InvalidNamespace"
}

Solución: Las colecciones creadas por la función de colección comodíncollectionName() () no se pueden cambiar de nombre.

Volver

Agregar colecciones y vistas

En esta página