2017-09-10 8 views
0

J'ai le problème suivant. J'ai inséré des données en utilisant un générateur de données aléatoires dans une base de données mongodb. Le problème était que j'ai choisi la mauvaise connexion DB et maintenant j'ai des données de test dans mon DB. Y a-t-il un moyen d'annuler les opérations d'insertion ou de supprimer tous les éléments récemment insérés? Est-ce que mongodb suit l'heure par défaut?Mongo DB supprimer les éléments insérés récemment

Merci pour vos réponses :)

+1

Il n'y a pas de "rollback" (et il n'y en a pas vraiment dans beaucoup de SGBDR une fois que vous avez "validé" vos mises à jour) dans n'importe quelle implémentation par défaut de MongoDB. Comme avec la plupart des bases de données, votre meilleure source d'annulation est toujours la restauration à partir d'une sauvegarde. Vous pouvez toujours [rechercher des valeurs 'ObjectId' en fonction du temps de création] (https://stackoverflow.com/questions/8749971/can-i-query-mongodb-objectid-by-date), mais ceci n'est subjectif à aucun autre les données sont en cours d'écriture dans le même laps de temps. En bref, demander en général «nettoyer mon gâchis» est plus qu'un peu trop large. –

+0

Merci pour votre réponse. En fait, la dernière chose que vous avez dite est très utile. Dans la base de données relationnelle, je pourrais toujours avoir recours à la suppression des entités par exemple rownumber. Je suis sûr que rien n'a été inséré après, donc je peux juste utiliser votre conseil et supprimer ces ID d'objet – user2359459

Répondre

0

Ainsi, grâce à la réponse de Neil Lunn, je suis sur la bonne voie. Bien qu'il ne soit en effet pas possible d'annuler une écriture, j'ai pu détecter l'heure de création et supprimer les données créées pendant cette période.

J'ai utilisé cette réponse

Can I query MongoDB ObjectId by date?

en combinaison avec trouver et supprimer, pour supprimer les entités de mes collections dans ma db.

J'ai simplement pu copier et coller la fonction dans la console mongodb et de là j'ai utilisé la fonction sur mes collections.

Merci encore de m'avoir indiqué dans la bonne direction.