¿Hay alguna forma de enumerar todas las bases de datos en un servidor MongoDB a través de Prisma mediante programación con mecanografiado?
Puede usar la función prisma $runCommandRaw para enumerar todas las bases de datos.
principal.ts
import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient({ log: ['query'], }); async function main() { const output = await prisma.$runCommandRaw({ listDatabases: 1 }); console.log(output); } main() .catch((e) => { throw e; }) .finally(async () => { await prisma.$disconnect(); });Aquí está la salida:
> ts-node index.ts { databases: [ { name: 'prisma', sizeOnDisk: 57344, empty: false }, { name: 'sample_airbnb', sizeOnDisk: 55226368, empty: false }, { name: 'sample_analytics', sizeOnDisk: 9609216, empty: false }, { name: 'sample_geospatial', sizeOnDisk: 1437696, empty: false }, { name: 'sample_mflix', sizeOnDisk: 56508416, empty: false }, { name: 'sample_restaurants', sizeOnDisk: 8863744, empty: false }, { name: 'sample_supplies', sizeOnDisk: 1191936, empty: false }, { name: 'sample_training', sizeOnDisk: 62578688, empty: false }, { name: 'sample_weatherdata', sizeOnDisk: 3694592, empty: false }, { name: 'admin', sizeOnDisk: 339968, empty: false }, { name: 'local', sizeOnDisk: 4137603072, empty: false } ], totalSize: 4337111040, totalSizeMb: 4136, ok: 1 } Asegúrese de que para ejecutar el comando listDatabases necesita estar en la base de datos de admin , por lo que su cadena de conexión debe apuntar a la base de datos de administración
Ejemplo:
DATABASE_URL="mongodb+srv://username:password@cluster0.souw3.mongodb.net/admin"