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

MongoDB премахване()

В MongoDB db.collection.remove() метод премахва документи от колекция. С други думи, изтрива ги.

collection част е името на колекцията, от която да премахнете документите.

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

Премахване на всички документи

В този пример премахваме всички документи от колекция, наречена employees :

db.employees.remove({})

Резултат:

WriteResult({ "nRemoved" : 5 })

Резултатът ни показва, че са премахнати пет документа.

Премахване на избраните документи

В този пример премахваме само някои документи.

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

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

Сега нека премахнем всички служители, които печелят повече от 80 000 годишно.

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

Резултат:

WriteResult({ "nRemoved" : 2 })

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

Нека да разгледаме колекцията.

db.employees.find()

Резултат:

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

Както се очакваше, двамата с най-високо заплащане напуснаха компанията.

Премахване на един документ

Има няколко начина да премахнете един документ от колекция. Методът, който използвате, ще зависи от това, което трябва да направите.

Можете да:

  • Премахване на конкретен документ
  • Използвайте justOne параметър

Премахване на конкретен документ

Ако трябва да премахнете конкретен документ, можете да посочите _id на документа стойност, за да премахнете този конкретен документ.

Така че, ако искаме да премахнем да речем Фриц от горната колекция, бихме могли да посочим неговия _id стойност на 3 . Като това:

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

Резултат:

WriteResult({ "nRemoved" : 1 })

И нека проверим колекцията отново:

db.employees.find()

Резултат:

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

Както се очакваше, Фриц вече изчезна.

Използвайте justOne Параметър

Като алтернатива можете да използвате justOne параметър за ограничаване на премахването само до един документ. Това изтрива първия документ, който отговаря на критериите за изтриване.

За да демонстрираме тази точка възможно най-ясно, нека премахнем всички останали документи от колекцията и след това да я попълним отново:

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

Добре, така че знаем, че в нашата колекция има пет документа.

Нека сега използваме justOne параметър за премахване на един документ.

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

Резултат:

WriteResult({ "nRemoved" : 1 })

И нека проверим колекцията, за да видим кой документ е изтрит.

db.employees.find()

Резултат:

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

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

justOne параметърът също има друг синтаксис. Можете също да го използвате в документ. Ще трябва да направите това, ако искате да предадете други аргументи на метода.

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

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

Резултат:

WriteResult({ "nRemoved" : 1 })

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

db.employees.find()

Резултат:

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

Както се очакваше, следващият документ беше изтрит.

Повече информация

Вижте документацията на MongoDB за повече информация.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb групирайте стойности по множество полета

  2. Заявка на MongoDB $in с масив от елемент с регулярни изрази

  3. Вложен масив за попълване на мангуста

  4. Запазете подмножество от колекция MongoDB в друга колекция

  5. $първо в mongodb