Руководство по MongoDB. Удаление документа.

В данной статье мы рассмотрим удаление документов из коллекции.


Метод remove()

Для удаления документов из коллекций в MongoDB предусмотрен метод remove().

Данный метод принимает два параметра:

  • критерий удаления
    Критерий, по которому документ будет удалён
  • justOne
    Если значение параметра ‘true’ – удаляет только один документ

Данный метод имеет следующий синтаксис:


db.ИМЯ_КОЛЛЕКЦИИ.remove(КРИТЕРИЙ_УДАЛЕНИЯ)

Для понимания того, как это работает на практике рассмотрим простой пример:

Создадим коллекцию test_collection:


> db.createCollection('test_collection')
{ "ok" : 1 }

И добавим в неё несколько записей:


> db.test_collection.insert( { 'title': 'Document1' } )
WriteResult({ "nInserted" : 1 })


> db.test_collection.insert( { 'title': 'Document2' } )
WriteResult({ "nInserted" : 1 })


> db.test_collection.insert( { 'title': 'Document3' } )
WriteResult({ "nInserted" : 1 })

Проверим содержимое нашей коллекции:


> db.test_collection.find().pretty()
{ "_id" : ObjectId("5815fe3f35ee883c37ac8b50"), "title" : "Document1" }
{ "_id" : ObjectId("5815fe4235ee883c37ac8b51"), "title" : "Document2" }
{ "_id" : ObjectId("5815fe4435ee883c37ac8b52"), "title" : "Document3" }

Предположим, что нам необходимо удалить документ с именем Document3.
Для этого нам необходимо использовать следующую команду:


> db.test_collection.remove( {"title": "Document3"} )
WriteResult({ "nRemoved" : 1 })

После удаления записи наша коллекция имеет следующий вид:


> db.test_collection.find().pretty()
{ "_id" : ObjectId("5815fe3f35ee883c37ac8b50"), "title" : "Document1" }
{ "_id" : ObjectId("5815fe4235ee883c37ac8b51"), "title" : "Document2" }


Параметр justOne

Если у нас есть несколько записей, но мы хотим удалить только первую из них, тогда нам необходимо установить параметр justOne в методе remove().

Данный метод имеет следующий синтаксис:


db.ИМЯ_КОЛЛЕКЦИИ.remove(КРИТЕРИЙ_УДАЛЕНИЯ, 1)


Удаление всех документов

Для удаления всех документов из коллекции (аналог команды truncate в SQL) нам необходимо выполнить метод remove() без указания критерия удаления.

Рассмотрим простой пример:

Коллекция test_collection имеет следующий вид:


> db.test_collection.find().pretty()
{ "_id" : ObjectId("5815fe3f35ee883c37ac8b50"), "title" : "Document1" }
{ "_id" : ObjectId("5815fe4235ee883c37ac8b51"), "title" : "Document2" }

Выполним следующую команду:


> db.test_collection.remove({})
WriteResult({ "nRemoved" : 2 })

Теперь коллекция test_collection не содержит документов:


> db.test_collection.find().pretty()
> 

На этом мы заканчиваем изучение удаления документов из коллекций.
В следующей статье мы рассмотрим, как получать только необходимы данные документа коллекции в MongoDB.