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

3 způsoby, jak vypustit index v MongoDB

MongoDB poskytuje několik způsobů, jak zrušit index nebo indexy.

Chcete-li zrušit jeden index, můžete použít dropIndex() metoda.

Chcete-li zrušit více indexů, můžete použít buď dropIndexes() nebo dropIndexes administrační příkaz.

dropIndex() Metoda

Pokud potřebujete zrušit pouze jeden index, můžete použít dropIndex() metoda. Tato metoda přijímá název indexu nebo dokument s jeho specifikací.

Zde je příklad zrušení indexu pomocí názvu indexu:

db.bars.dropIndex("location_2dsphere")

Výstup:

{ "nIndexesWas" : 3, "ok" : 1 }

To nám říká, že index nazvaný location_2dsphere byla úspěšně zrušena.

Zde je příklad zrušení indexu předáním jeho dokumentu specifikace:

db.bars.dropIndex( { "name" : 1 } )

Výstup:

{ "nIndexesWas" : 2, "ok" : 1 }

Vidíme, že tento index byl také vypuštěn. Tento index měl specifikaci { "name" : 1 } , což je dokument specifikace, který jsem použil při vytváření indexu.

dropIndex() metoda je obal kolem dropIndexes příkaz.

dropIndexes() Metoda

dropIndexes() metoda může být užitečná, pokud potřebujete vypustit více než jeden index. Můžete také zrušit jeden index, jen má přidanou možnost, že je možné zrušit více (nebo všechny) indexy.

Tato metoda přijímá název indexu nebo jeho specifikační dokument pro každý z indexů, které mají být odstraněny. Pokud odstraňujete více než jeden index, musíte zadat jejich názvy/dokumenty se specifikacemi v poli.

Zde je příklad odstranění dvou indexů pomocí jejich názvů indexů:

db.pets.dropIndexes( [ "type_1", "name_1" ])

Výstup:

{ "nIndexesWas" : 3, "ok" : 1 }

Všimněte si, že pokud se jedná o textový index, můžete zadat pouze název indexu.

Můžete zrušit všechny indexy (kromě _id index) úplným vynecháním parametru:

db.pets.dropIndexes()

dropIndexes() metoda je obal kolem dropIndexes příkaz.

dropIndexes Příkaz

dropIndexes vám umožňuje dělat to samé, co dropIndexes() metoda. Jak již bylo zmíněno, dropIndexes() metoda je obal kolem dropIndexes příkaz

Zde je příklad odstranění jednoho indexu:

db.runCommand( { dropIndexes: "posts", index: "title_1" })

Výstup:

{ "nIndexesWas" : 4, "ok" : 1 } 

A zde je příklad odstranění více indexů:

db.runCommand( { 
  dropIndexes: "posts", 
  index: [ "tags_1", "body_text" ] 
})

Výsledek:

{ "nIndexesWas" : 3, "ok" : 1 }

Chcete-li zrušit všechny indexy (kromě _id index), použijte zástupný znak hvězdičky (* ):

db.runCommand( { dropIndexes: "posts", index: "*" })

Výsledek:

{
	"nIndexesWas" : 4,
	"msg" : "non-_id indexes dropped for collection",
	"ok" : 1
}

  1. Agregát MongoDB je po prvním kroku shody pomalý

  2. Při používání fasády mezipaměti v Laravelu se klíče Redis nezobrazují

  3. Která, pokud vůbec nějaká, z NoSQL databází může poskytnout proud *změn* v sadě výsledků dotazu?

  4. Aplikační mezipaměť v.s. Úsporná mezipaměť druhé úrovně, kterou použít?