sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB deleteOne()

I MongoDB är db.collection.deleteOne() metod tar bort ett enskilt dokument från en samling. Med andra ord, den tar bort den.

collection del är namnet på den samling som dokumentet ska tas bort från.

Exempel

Låt oss fylla i en samling som heter employees med fem dokument:

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 }
    ])

Låt oss nu använda db.collection.deleteOne() för att radera ett av dessa dokument.

db.employees.deleteOne({ "_id": 4 })

Resultat:

{ "acknowledged" : true, "deletedCount" : 1 }

Detta raderade anställd nummer 4.

Låt oss ta en titt på samlingen för att verifiera.

db.employees.find()

Resultat:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 2, "name" : "Sarah", "salary" : 128000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Vi kan se att anställd nummer 4 inte längre finns i samlingen.

Använda ett bredare villkor

I föregående exempel använde vi _id fältet för den anställde som vi ville ta bort. Eftersom _id fältet är den unika identifieraren för varje dokument, vilket gjorde att vi kunde ta bort exakt det dokument som vi ville ta bort.

Det är också möjligt att radera ett enstaka dokument utan att vara så exakt om vilket som tas bort. Du kan till exempel använda ett brett filter som returnerar många dokument, men bara ta bort det första dokumentet från dessa resultat.

Vi kan till exempel filtrera efter anställda som tjänar mer än 80 000 per år och sedan ta bort det första dokumentet i den gruppen.

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

Resultat:

{ "acknowledged" : true, "deletedCount" : 1 }

I det här exemplet raderades bara ett dokument, även om det fanns två dokument som matchade kriterierna.

Vi kan ta en titt på samlingen för att se vilken som togs bort.

db.employees.find()

Resultat:

{ "_id" : 1, "name" : "Sandy", "salary" : 55000 }
{ "_id" : 3, "name" : "Fritz", "salary" : 25000 }
{ "_id" : 5, "name" : "Beck", "salary" : 82000 }

Vi kan till och med ta det ett steg längre och ta bort alla filter, vilket innebär att den väljer från alla dokument i samlingen.

db.employees.deleteOne({})

Resultat:

{ "acknowledged" : true, "deletedCount" : 1 }

Återigen kan vi kontrollera samlingen för att se vilken som togs bort.

db.employees.find()

Resultat:

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

Som väntat togs det första dokumentet bort.

Mer information

db.collection.deleteOne() Metoden accepterar även valfria parametrar som collation , hint och writeConcern .

Se MongoDB-dokumentationen för mer information.


  1. Åtkomst till meteorproduktionsdatabasen 2016

  2. mongo-kommandot känns inte igen när man försöker ansluta till en mongodb-server

  3. Använder Cloudera Data Engineering för att analysera lönecheckskyddsprogrammets data

  4. Spring data mongo använder OR i Query