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

Mongodb indexování pro agregáty

Nemůžete vytvořit index, který funguje tak, jak jste jej popsali. Neexistuje způsob, jak „indexovat“ jeden z výstupů kroku kanálu při spuštění agregace.

Existuje několik agregačních operátorů, se kterými může pracovat Indexy kolekce MongoDB .

Aktuálně mezi ně patří:$match , $sort , $limit a $skip .

Jako $match je jedním z nich, výkon agregačního dotazu, který jste napsali, může být přínosný deklarováním složeného indexu ve dvou polích, zejména pokud jste správně umístili $match na začátku potrubí:

db.theCollection.ensureIndex({user: 1, type: 1})

$group krok v potrubí převezme výsledky z $match a v ideálním případě být relativně rychlý. :)



  1. Mongo najde dokumenty, kde pole obsahuje x hodnot daného pole

  2. mongoose findByIdAndDelete / findOneAndRemove neodstranění

  3. Jak mohu uložit denní dobu v MongoDB? Jako struna? Uveďte libovolný rok/měsíc/den?

  4. Agregace na úrovni měsíce a roku, také najděte průměr v MongoDB