MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Remoção do MongoDB()


No MongoDB o db.collection.remove() O método remove documentos de uma coleção. Em outras palavras, ele os exclui.

A collection parte é o nome da coleção da qual remover os documentos.

Você pode excluir todos os documentos, alguns documentos ou um único documento conforme necessário.

Remover todos os documentos


Neste exemplo, removemos todos os documentos de uma coleção chamada employees :
db.employees.remove({})

Resultado:
WriteResult({ "nRemoved" : 5 })

O resultado nos mostra que cinco documentos foram removidos.

Remover documentos selecionados


Neste exemplo, removemos apenas alguns documentos.

Primeiro, vamos preencher nossa coleção de funcionários novamente:
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 }
    ])

Agora, vamos remover todos os funcionários que ganham mais de 80.000 por ano.
db.employees.remove({ "salary": { $gt: 80000 } })

Resultado:
WriteResult({ "nRemoved" : 2 })

Desta vez, apenas dois documentos foram removidos.

Vamos dar uma olhada na coleção.
db.employees.find()

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

Como esperado, os dois maiores assalariados deixaram a empresa.

Remover um documento


Existem algumas maneiras de remover um único documento de uma coleção. O método usado dependerá do que você precisa fazer.

Você também pode:
  • Remover um documento específico
  • Use o justOne parâmetro

Remover um documento específico


Se você precisar remover um documento específico, especifique o _id do documento valor para remover esse documento específico.

Então, se quisermos remover, digamos, Fritz da coleção acima, podemos especificar seu _id valor de 3 . Assim:
db.employees.remove({ "_id": 3 })

Resultado:
WriteResult({ "nRemoved" : 1 })

E vamos conferir a coleção novamente:
db.employees.find()

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

Como esperado, Fritz agora desapareceu.

Use o justOne Parâmetro


Você também pode usar o justOne parâmetro para limitar a remoção a apenas um documento. Isso exclui o primeiro documento que corresponde aos critérios de exclusão.

Para demonstrar esse ponto da forma mais clara possível, vamos remover todos os documentos restantes da coleção e, em seguida, repovoá-la:
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 }
    ])

OK, então sabemos que há cinco documentos em nossa coleção.

Vamos agora usar o justOne parâmetro para remover um único documento.
db.employees.remove({}, "justOne: true")

Resultado:
WriteResult({ "nRemoved" : 1 })

E vamos verificar a coleção para ver qual documento foi excluído.
db.employees.find()

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

Como esperado, o primeiro documento foi excluído.

O justOne parâmetro também tem outra sintaxe. Você também pode usá-lo dentro de um documento. Você precisará fazer isso se for passar outros argumentos para o método.

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

Resultado:
WriteResult({ "nRemoved" : 1 })

E vamos dar uma olhada na coleção
db.employees.find()

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

Como esperado, o próximo documento foi excluído.

Mais informações


Consulte a documentação do MongoDB para obter mais informações.