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

Odstranění duplicitních záznamů pomocí MapReduce

Nepoužil jsem mongoDB, ale použil jsem mapreduce. Myslím, že jste na správné cestě, pokud jde o funkce mapreduce. Chcete-li vyloučit 0 a prázdné řetězce, můžete přidat kontrolu v samotné funkci mapy.. něco jako

m = function () { 
  if(this.MlsId!=0 && this.MlsId!="") {    
    emit(this.MlsId, 1); 
  }
} 

A snížení by mělo vrátit páry klíč–hodnota. Takže by to mělo být:

r = function(k, vals) {
  emit(k,Arrays.sum(vals);
}

Poté byste měli mít na výstupu sadu párů klíč–hodnota, takže klíč je MlsId a hodnota je počet výskytů tohoto konkrétního ID. Nejsem si jistý částí db.drop(). Jak jste uvedli, s největší pravděpodobností odstraní všechny MlsId namísto odstranění pouze duplicitních. Chcete-li to obejít, možná můžete nejprve zavolat drop() a poté jednou znovu vytvořit MlsId. Bude to pro vás fungovat?



  1. Jak se mohu bezpečně připojit k Redis hostovanému Heroku z příkazového řádku?

  2. Jak používat Redis s Pythonem

  3. Jak mohu uložit více dokumentů současně v Mongoose/Node.js?

  4. Výukový program MongoDB pro začátečníky (kompletní průvodce) – Naučte se MongoDB za 15 minut