Le problème peut être résolu en :
- Sauvegarde de toutes les bases de données (avec
mongodump
) - Suppression de tous les fichiers en
/data/db
, en raison de leur incompatibilité avec la nouvelle version :rm -rf /data/db/*
- Redémarrage du service MongoDB
- Restauration de toutes les bases de données (avec
mongorestore
)
J'ai rencontré un problème similaire avec admin db, lors de la mise à niveau de l'ancien mongodb 3.4 vers 4.2.
La solution consiste à mongodump toutes les bases de données et supprimer /var/lib/mongodb, puis mongorestore toutes les bases de données.
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 cause du problème :mongodb 4.2 ajoutera userId avec la valeur UUID dans la collection system.user. J'espère que cela vous aidera.
Lors de la mise à niveau d'un autre mongo db, j'ai rencontré exactement le même problème que le vôtre sur startup_log, il semble que je n'ai pas arrêté le mongodb lors de la suppression du dossier /var/lib/mongodb, après avoir arrêté mongod et supprimé le /var/lib/mongodb et mis à niveau à 4.2, l'erreur disparaît.