El problema puede ser resuelto por:
- Copia de seguridad de todas las bases de datos (usando
mongodump
) - Eliminar todos los archivos en
/data/db
, debido a su incompatibilidad con la nueva versión:rm -rf /data/db/*
- Reinicio del servicio MongoDB
- Restaurando todas las bases de datos (usando
mongorestore
)
Me encontré con un problema similar con admin db, cuando actualicé desde el antiguo mongodb 3.4 a 4.2.
La solución es mongodump todos los dbs y eliminar /var/lib/mongodb, luego mongorestore todos los dbs.
STORAGE [initandlisten] exception in initAndListen: MustDowngrade: Collection does not have UUID in KVCatalog. Collection: admin.system.users, terminating
2019-09-24T21:59:55.274+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-09-24T21:59:55.274+0000 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-09-24T21:59:55.274+0000 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2019-09-24T21:59:55.274+0000 I CONTROL [initandlisten] now exiting
2019-09-24T21:59:55.274+0000 I CONTROL [initandlisten] shutting down with code:100
La causa del problema:mongodb 4.2 agregará el ID de usuario con el valor UUID en la colección system.user. Espero que esto ayude.
Al actualizar otra base de datos mongo, encontré exactamente el mismo problema que el suyo en startup_log, parece que no detuve mongodb cuando eliminé la carpeta /var/lib/mongodb, después de detener mongod y eliminar /var/lib/mongodb y actualizar a 4.2, el error desaparece.