ver una eliminar documento datos crear colecciones coleccion campo abrir mongodb

documento - Eliminar todo en una base de datos MongoDB



eliminar un campo de un documento mongodb (16)

  1. Listar todos los dbs disponibles dbs show
  2. Elija el uso db necesario
  3. Descarte la base de datos db.dropDatabase () // Pocos comandos adicionales
  4. Listar todas las colecciones disponibles en una colección de presentaciones de db
  5. Eliminar una colección de especificaciones db.collection.drop ()

Espero que ayude

Estoy haciendo desarrollo en MongoDB. Para propósitos totalmente no malvados, a veces quiero eliminar todo lo que hay en una base de datos, es decir, eliminar cada colección, y cualquier otra cosa que pueda haber, y comenzar desde cero. ¿Hay una sola línea de código que me permita hacer esto? Puntos de bonificación por proporcionar tanto un método de consola MongoDB como un método de controlador MongoDB Ruby.


Además, desde la línea de comando:

mongo DATABASE_NAME --eval "db.dropDatabase();"


Al compilar las respuestas de @Robse y @DanH (kudos!), Tengo la siguiente solución que me satisface completamente:

db.getCollectionNames().forEach( function(collection_name) { if (collection_name.indexOf("system.") == -1) db[collection_name].drop(); else db.collection_name.remove({}); });

Conéctate a tu base de datos, ejecuta el código.

Limpia la base de datos eliminando las colecciones de usuarios y vaciando las colecciones del sistema.


En MongoDB 3.2 y más reciente, Mongo().getDBNames() en el shell mongo mostrará una lista de nombres de bases de datos en el servidor:

> Mongo().getDBNames() [ "local", "test", "test2", "test3" ] > show dbs local 0.000GB test 0.000GB test2 0.000GB test3 0.000GB

Un bucle forEach() sobre la matriz podría llamar a dropDatabase() para eliminar todas las bases de datos enumeradas. Opcionalmente, puede optar por omitir algunas bases de datos importantes que no desea eliminar. Por ejemplo:

Mongo().getDBNames().forEach(function(x) { // Loop through all database names if ([''admin'', ''config'', ''local''].indexOf(x) < 0) { // Drop if database is not admin, config, or local Mongo().getDB(x).dropDatabase(); } })

Ejecución de ejemplo:

> show dbs admin 0.000GB config 0.000GB local 0.000GB test 0.000GB test2 0.000GB test3 0.000GB > Mongo().getDBNames().forEach(function(x) { ... if ([''admin'', ''config'', ''local''].indexOf(x) < 0) { ... Mongo().getDB(x).dropDatabase(); ... } ... }) > show dbs admin 0.000GB config 0.000GB local 0.000GB



He escuchado algunas operaciones de eliminación completa de uso para mongodb usando mongo shell

Para eliminar un documento en particular en las colecciones: db.mycollection.remove( {name:"stack"} )

Para eliminar todos los documentos de las colecciones: db.mycollection.remove()

Para eliminar la colección: db.mycollection.drop()

para eliminar la base de datos: primero vaya a esa base de datos use mydb comando use mydb y luego

db.dropDatabase()


La forma más sencilla de eliminar una base de datos dice blog:

> use blog switched to db blog > db.dropDatabase(); { "dropped" : "blog", "ok" : 1 }


Para borrar todos los DBs use:

for i in $(mongo --quiet --host $HOSTNAME --eval "db.getMongo().getDBNames()" | tr "," " "); do mongo $i --host $HOSTNAME --eval "db.dropDatabase()"; done


Seguí la ruta db.dropDatabase() durante mucho tiempo, sin embargo, si está intentando usar esto para borrar la base de datos entre los casos de prueba, es posible que finalmente encuentre problemas con las restricciones de índice que no se cumplen después de la eliminación de la base de datos. Como resultado, tendrá que meterse con el asegurador de los Índices, o una ruta más simple sería evitar la caída de la Base de datos en su totalidad y simplemente eliminarla de cada colección en un bucle como:

db.getCollectionNames().forEach( function(collection_name) { db[collection_name].remove() } );

En mi caso, estaba ejecutando esto desde la línea de comandos usando:

mongo [database] --eval "db.getCollectionNames().forEach(function(n){db[n].remove()});"


Tuve el mismo problema, cuando necesitaba restablecer todas las colecciones pero no quería perder a ningún usuario de la base de datos. Utilice la siguiente línea de código, si desea guardar la configuración de usuario para la base de datos:

use <whichever database> db.getCollectionNames().forEach(function(c) { if (c.indexOf("system.") == -1) db[c].drop(); })

Este código pasará por todos los nombres de colección de una base de datos y eliminará aquellos que no comiencen con "sistema".


Utilizar

[databaseName] db.Drop+databaseName(); drop collection use databaseName db.collectionName.drop();


en caso de que tenga que dejar todo a la vez: (elimine todas las bases de datos a la vez)

mongo --quiet --eval ''db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})''


si desea eliminar solo una base de datos y sus subcolecciones use esto:

  • use <database name>;
  • db.dropDatabase();

Si desea eliminar todas las bases de datos en mongo, use esto:

db.adminCommand("listDatabases").databases.forEach(function(d) { if(d.name!="admin" && d.name!="local" && d.name!="config") { db.getSiblingDB(d.name).dropDatabase(); } } );


yo prefiero

db.your_collection.remove({})

terminado

db.your_collection.drop()

Si su colección era una colección especial, es decir, una colección con límite o una colección con un campo marcado como único, la eliminación eliminará la colección en sí misma y, cuando se vuelva a crear, la colección será una colección normal. Tendrás que definir las propiedades nuevamente. Entonces, use remove() para borrar los documentos sin eliminar la colección y afectar el comportamiento de la colección.


Para los desarrolladores de Meteor.

  1. Abra una segunda ventana de terminal mientras ejecuta su aplicación en localhost:3000 .

  2. En la carpeta de ejecución de su proyecto, meteor mongo .

    coolName = new Mongo.Collection(''yourCollectionName'');

  3. Luego simplemente ingrese db.yourCollectionName.drop();

  4. Verás automáticamente los cambios en tu servidor local.

Para todos los demás.

db.yourCollectionName.drop();


use <dbname> db.dropAllUsers() db.dropAllRoles() db.dropDatabase()

MongoDB db.dropDatabase () documentación que explica la modificación introducida en 2.6:

Modificado en la versión 2.6: este comando no elimina los usuarios asociados con la base de datos actual.