MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment puis-je supprimer les doublons dans MongoDb ?

MongoDB fait probablement cela pour se défendre. Si vous dropDups sur le mauvais champ, vous pourriez arroser l'intégralité du jeu de données et verrouiller la base de données avec des opérations de suppression (qui sont « aussi coûteuses » que les écritures).

Donc la première question est pourquoi créez-vous un index unique sur le id champ ?

MongoDB crée un _id par défaut champ automatiquement unique et indexé. Par défaut, MongoDB renseigne le _id avec un ObjectId , cependant, vous pouvez le remplacer par la valeur de votre choix. Donc, si vous disposez d'un ensemble prêt de valeurs d'ID, vous pouvez les utiliser .

Si vous ne pouvez pas réimporter les valeurs, copiez-les dans une nouvelle collection tout en modifiant id dans _id . Vous pouvez ensuite supprimer l'ancienne collection et renommer la nouvelle. (notez que vous obtiendrez un tas "d'erreurs de clé en double", assurez-vous que votre code les attrape et les ignore )