В данной статье мы рассмотрим удаление документов из коллекции.
Метод 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.