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

MongoDB deleteOne()

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

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

Пример

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

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

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

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

Резултат:

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

Това изтри служител номер 4.

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

db.employees.find()

Резултат:

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

Виждаме, че служител номер 4 вече не съществува в колекцията.

Използване на по-широко условие

В предишния пример използвахме _id поле на служителя, което искахме да изтрием. Тъй като _id полето е уникалният идентификатор за всеки документ, това ни позволи да изтрием точния документ, който искахме да бъде изтрит.

Възможно е също да изтриете един документ, без да сте толкова прецизни за това кой е изтрит. Например, можете да използвате широк филтър, който връща много документи, но изтрива само първия документ от тези резултати.

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

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

Резултат:

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

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

Можем да разгледаме колекцията, за да видим коя е изтрита.

db.employees.find()

Резултат:

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

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

db.employees.deleteOne({})

Резултат:

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

Още веднъж можем да проверим колекцията, за да видим коя е изтрита.

db.employees.find()

Резултат:

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

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

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

db.collection.deleteOne() методът също така приема незадължителни параметри като collation , hint и writeConcern .

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да използвам променлива с регулярни изрази в заявка за MongoDB

  2. Оперативни фактори, които трябва да се вземат предвид по време на моделиране на данни на MongoDB

  3. Как да използвате повторно mongodb връзка чрез Promise

  4. Mongoimport на JSON файл

  5. MongoDB $indexOfCP