V MongoDB můžete odstranit dokumenty jedním ze tří způsobů.
MongoDB poskytuje tři způsoby odstraňování dokumentů:
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.remove()
db.collection.deleteOne()
Metoda
db.collection.deleteOne()
odstraní pouze jeden dokument, i když kritériím odpovídá více než jeden dokument.
Zde je příklad db.collection.deleteOne()
způsob odstranění jednoho dokumentu.
Nejprve spusťte dotaz, který vrátí více výsledků:
db.artists.find( { jméno umělce:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )
Výsledky:
{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014d"), "jméno umělce" :"The Kooks" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "jméno umělce" :"Id_objektu" :"Id_objektu" :("5781d7f248ef8c6b3ffb014f"), "artistname" :"Gang of Four" }
Dobře, takže víme, že existují tři dokumenty, které splňují tato kritéria.
Nyní použijeme přesně stejná kritéria filtrování pro naše db.collection.deleteOne()
metoda:
db.artists.deleteOne( { jméno umělce:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )
Výsledná zpráva:
{ "acknowledged" :true, "deletedCount" :1 }
Byl tedy odstraněn pouze jeden dokument, i když tři dokumenty odpovídaly kritériím.
Spusťte find()
znovu dotaz, abyste viděli, které dokumenty zbývají:
db.artists.find( { jméno umělce:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )
Výsledky:
{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"Bastille" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname of Four" :"Gangname" :"GangPoložka
db.collection.deleteMany()
Metoda
db.collection.deleteMany()
metoda odstraní všechny dokumenty, které odpovídají kritériím.Spusťte tedy
db.collection.deleteMany()
metoda s přesně stejnými kritérii jako v našem předchozím příkladu. Pamatujte, zbývají dva záznamy. Podívejme se, zdadb.collection.deleteMany()
smaže oba:db.artists.deleteMany( { jméno umělce:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )Výsledná zpráva:
{ "acknowledged" :true, "deletedCount" :2 }Takže zbývající dva záznamy byly smazány.
Příkaz
db.collection.remove()
Metoda
db.collection.remove()
metoda odstraní jeden dokument nebo všechny dokumenty, které odpovídají zadaným kritériím.Zde odstraníme všechny dokumenty, kde je jméno interpreta „AC/DC“.
db.artists.remove( { jméno umělce:"AC/DC" } )Výsledky:
WriteResult({ "nRemoved" :1 })V tomto případě je zde pouze jeden AC/DC :)
justOne
MožnostMůžete použít
justOne
parametr k omezení operace odstranění pouze na jeden dokument (stejně jako použitídb.collection.deleteOne()
).Zde je příklad.
Nejprve spusťte dotaz, který vrátí více dokumentů:
db.musicians.find( { born:{ $lt:1950 } } )Výsledky:
{ "_id" :2, "name" :"Ian Paice", "nástroj" :"bicí", "born" :1948 }{ "_id" :3, "name" :"Roger Glover", " instrument" :"Basa", "born" :1945 }{ "_id" :5, "name" :"Don Airey", "instrument" :"Klávesnice", "born" :1948 }Nyní smažeme jeden z těchto záznamů pomocí
justOne
volba. Opět použijeme přesně stejná kritéria filtrování:db.musicians.remove( { born:{ $lt:1950 } }, { justOne:1 } )Výsledná zpráva:
WriteResult({ "nRemoved" :1 })Nyní spustíme stejný dotaz, abychom zjistili, které dokumenty zbývají:
db.musicians.find( { born:{ $lt:1950 } } )Výsledky:
{ "_id" :3, "name" :"Roger Glover", "nástroj" :"Bas", "born" :1945 }{ "_id" :5, "name" :"Don Airey", " nástroj" :"Klávesy", "nar" :1948 }Smazat všechny dokumenty ve sbírce
Všechny dokumenty v kolekci můžete jednoduše odstranit vynecháním jakýchkoli kritérií filtrování.
Smažeme všechny dokumenty v umělci kolekce:
db.artists.remove( {} )Výsledná zpráva:
WriteResult({ "nRemoved" :8 })Pokud se zobrazí Chyba:odstranění vyžaduje dotaz chyba, zkontrolujte, zda jste nezapomněli zahrnout složené závorky. Stále je musíte zahrnout.