sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu odstranit duplikáty v MongoDb?

MongoDB to pravděpodobně dělá, aby se bránil. Pokud dropDups na špatném poli byste mohli hadici celé datové sady a uzamknout DB operacemi mazání (které jsou „tak drahé“, jak se píše).

První otázkou tedy je, proč vytváříte jedinečný index na id pole?

MongoDB vytvoří výchozí _id pole, které je automaticky jedinečné a indexováno. Ve výchozím nastavení MongoDB vyplní _id s ObjectId , můžete to však přepsat libovolnou hodnotou. Pokud tedy máte připravenou sadu hodnot ID, můžete je použít .

Pokud nemůžete znovu importovat hodnoty, zkopírujte je do nové kolekce a zároveň změňte id do _id . Poté můžete starou sbírku zrušit a přejmenovat novou. (všimněte si, že se objeví spousta „duplicitních klíčových chyb“, ujistěte se, že je váš kód zachytí a ignoruje )



  1. Fragmentace dat v mongo sběru

  2. MongoDB $set neaktualizuje záznam

  3. Upozornění na vypršení platnosti klíče v redis pythonu

  4. Mongoose:Odeslání do ObjectId selhalo pro hodnotu