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

MongoDB remove()

V MongoDB db.collection.remove() metoda odstraní dokumenty z kolekce. Jinými slovy, odstraní je.

collection část je název kolekce, ze které se mají dokumenty odstranit.

Podle potřeby můžete odstranit všechny dokumenty, některé dokumenty nebo jeden dokument.

Odebrat všechny dokumenty

V tomto příkladu odstraníme všechny dokumenty z kolekce nazvané employees :

db.employees.remove({})

Výsledek:

WriteResult({ "nRemoved" : 5 })

Výsledek nám ukazuje, že bylo odstraněno pět dokumentů.

Odebrat vybrané dokumenty

V tomto příkladu odstraníme pouze některé dokumenty.

Nejprve znovu vyplňte sbírku našich zaměstnanců:

db.employees.insertMany([
    { _id: 1, name: "Sandy", salary: 55000 },
    { _id: 2, name: "Sarah", salary: 128000 },
    { _id: 3, name: "Fritz", salary: 25000 },
    { _id: 4, name: "Chris", salary: 45000 },
    { _id: 5, name: "Beck", salary: 82000 }
    ])

Nyní odeberme všechny zaměstnance, kteří vydělávají více než 80 000 ročně.

db.employees.remove({ "salary": { $gt: 80000 } })

Výsledek:

WriteResult({ "nRemoved" : 2 })

Tentokrát byly odstraněny pouze dva dokumenty.

Pojďme se podívat na sbírku.

db.employees.find()

Výsledek:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }

Podle očekávání ze společnosti odešli dva nejlépe vydělávající lidé.

Odebrat jeden dokument

Existuje několik způsobů, jak odstranit jeden dokument z kolekce. Metoda, kterou použijete, bude záviset na tom, co musíte udělat.

Můžete buď:

  • Odstranění konkrétního dokumentu
  • Použijte justOne parametr

Odstranění konkrétního dokumentu

Pokud potřebujete odstranit konkrétní dokument, můžete zadat _id dokumentu hodnotu k odstranění tohoto konkrétního dokumentu.

Takže pokud bychom chtěli odstranit řekněme Fritze z výše uvedené sbírky, mohli bychom zadat jeho _id hodnotu 3 . Takhle:

db.employees.remove({ "_id": 3 })

Výsledek:

WriteResult({ "nRemoved" : 1 })

A pojďme znovu zkontrolovat sbírku:

db.employees.find()

Výsledek:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }

Jak se očekávalo, Fritz nyní zmizel.

Použijte justOne Parametr

Alternativně můžete použít justOne parametr pro omezení odstranění pouze na jeden dokument. Tím se odstraní první dokument, který odpovídá kritériím pro odstranění.

Abychom tento bod co nejjasněji demonstrovali, odeberme všechny zbývající dokumenty z kolekce a poté ji znovu naplňte:

db.employees.remove({})
db.employees.insertMany([
    { _id: 1, name: "Sandy", salary: 55000 },
    { _id: 2, name: "Sarah", salary: 128000 },
    { _id: 3, name: "Fritz", salary: 25000 },
    { _id: 4, name: "Chris", salary: 45000 },
    { _id: 5, name: "Beck", salary: 82000 }
    ])

Dobře, takže víme, že v naší sbírce je pět dokumentů.

Nyní použijeme justOne parametr k odstranění jednoho dokumentu.

db.employees.remove({}, "justOne: true")

Výsledek:

WriteResult({ "nRemoved" : 1 })

A podívejme se na sbírku, abychom viděli, který dokument byl smazán.

db.employees.find()

Výsledek:

{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Podle očekávání byl první dokument smazán.

justOne parametr má také jinou syntaxi. Můžete jej také použít uvnitř dokumentu. Budete to muset udělat, pokud budete metodě předávat další argumenty.

Zde je příklad.

db.employees.remove(
    {}, 
    {
        justOne: true,
        writeConcern: { w: "majority", wtimeout: 3000 },
        collation: { locale: "de", strength: 1 }
    }
)

Výsledek:

WriteResult({ "nRemoved" : 1 })

A pojďme se znovu podívat na kolekci

db.employees.find()

Výsledek:

{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 4, "name" : "Chris", "salary" : 45000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Podle očekávání byl další dokument smazán.

Další informace

Další informace naleznete v dokumentaci MongoDB.


  1. java.lang.IncompatibleClassChangeError:Implementace třídy Mongo

  2. provedení příkazu redis eval ke spuštění skriptu Lua v nodeJS

  3. Reverzní stránkování prostřednictvím seřazené sady Redis

  4. Zaokrouhlování na 2 desetinná místa pomocí agregačního rámce MongoDB