MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB - Изтриване на документ

В MongoDB можете да изтривате документи, като използвате един от трите метода.

MongoDB предоставя три метода за изтриване на документи:

  • db.collection.deleteOne()
  • db.collection.deleteMany()
  • db.collection.remove()

db.collection.deleteOne() Метод

db.collection.deleteOne() изтрива само един документ, дори ако повече от един документ отговарят на критериите.

Ето пример за db.collection.deleteOne() метод за изтриване на един документ.

Първо, нека изпълним заявка, която връща множество резултати:

db.artists.find( { artistname:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )

Резултати:

{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" :"The Kooks" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "Bastille":"Bastille" :("5781d7f248ef8c6b3ffb014f"), "artistname" :"Gang of Four" }

Добре, така че знаем, че има три документа, които отговарят на този критерий.

Сега нека използваме точно същите критерии за филтриране за нашия db.collection.deleteOne() метод:

db.artists.deleteOne( { artistname:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )

Резултатно съобщение:

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

Така че само един документ беше изтрит, въпреки че три документа отговаряха на критериите.

Нека изпълним find() потърсете отново, за да видите кои документи остават:

db.artists.find( { artistname:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )

Резултати:

{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" :"Bastille" }{ "_id" :ObjectId("5781d7f248ef8c6b3ffb014f"), "Gartistname of F"> :

db.collection.deleteMany() Метод

db.collection.deleteMany() метод изтрива всички документи, които отговарят на критериите.

Така че нека стартираме db.collection.deleteMany() метод със същите критерии като предишния пример. Не забравяйте, че остават два рекорда. Нека видим дали db.collection.deleteMany() изтрива и двете:

db.artists.deleteMany( { artistname:{ $in:[ "The Kooks", "Gang of Four", "Bastille" ] } } )

Резултатно съобщение:

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

Така останалите два записа бяха изтрити.

db.collection.remove() Метод

db.collection.remove() метод изтрива един документ или всички документи, които отговарят на посочените критерии.

Тук изтриваме всички документи, където името на изпълнителя е "AC/DC".

db.artists.remove( { artistname:"AC/DC" } )

Резултати:

WriteResult({ "nRemoved" :1 })

В този случай има само един AC/DC :)

justOne Опция

Можете да използвате justOne параметър за ограничаване на операцията за премахване само до един документ (точно както при използване на db.collection.deleteOne() ).

Ето един пример.

Първо, нека изпълним заявка, която връща множество документи:

db.musicians.find( { роден:{ $lt:1950 } } )

Резултати:

{ "_id" :2, "name" :"Ian Paice", "instrument" :"Барабани", "born" :1948 }{ "_id" :3, "name" :"Roger Glover", " инструмент" :"Бас", "роден" :1945 }{ "_id" :5, "name" :"Дон Ейри", "инструмент" :"Клавиатурни", "роден" :1948 }

Сега ще изтрием един от тези записи с помощта на justOne опция. Отново ще използваме същите критерии за филтриране:

db.musicians.remove( { роден:{ $lt:1950 } }, { justOne:1 } )

Резултатно съобщение:

WriteResult({ "nRemoved" :1 })

Сега нека изпълним същата заявка, за да видим кои документи остават:

db.musicians.find( { роден:{ $lt:1950 } } )

Резултати:

{ "_id" :3, "name" :"Roger Glover", "instrument" :"Бас", "born" :1945 }{ "_id" :5, "name" :"Don Airey", " инструмент" :"Клавиатури", "родени" :1948 }

Изтриване на всички документи в колекция

Можете да изтриете всички документи в колекция, просто като пропуснете всички критерии за филтриране.

Нека изтрием всички документи в изпълнители колекция:

db.artists.remove( {} )

Резултатно съобщение:

WriteResult({ "nRemoved" :8 })

Ако получите Грешка:remove се нуждае от заявка грешка, проверете дали не сте забравили да включите фигурните скоби. Все още трябва да ги включите.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преобразувайте DBObject в POJO с помощта на MongoDB Java драйвер

  2. WiredTiger и актуализации на място

  3. Уникален индекс на Mongoose на поддокумента

  4. mongodb добавя брояч към всеки извлечен документ

  5. Съхраняване на йерархия на директории в хранилище на данни ключ-стойност