Em uma de minhas leituras, descobri que a função remove () excluirá os documentos sem nenhuma alteração nos índices existentes.
por exemplo: "db.users.remove() - Isso removerá todos os documentos na coleção de usuários. Na verdade, isso não remove a coleção e quaisquer índices criados nela ainda existirão. "
Gostaria de entender por que os índices são retidos quando os dados referenciados reais são removidos/excluídos nessa coleção específica? existe algum caso de uso específico?
obrigada
O comando db.collection.remove() é usado para remover dados de uma coleção. Dessa forma, os documentos serão removidos da coleção e os índices da coleção serão atualizados para não fazer mais referência aos documentos removidos.
Remover pode ser usado de forma a remover apenas um subconjunto de dados. Dos documentos :
Por exemplo, você pode querer remover um subconjunto de dados, mas reter os índices existentes para continuar acessando os dados restantes de acordo com os padrões de acesso existentes.
Esse comando é diferente do comando db.collection.drop() , que remove toda a coleção junto com seus índices.
No MongoDB v3.6+ (o meu era v3.6.8), após uma
db.products.remove()
operação, você pode recriar o índice emitindo um:caso contrário, ferramentas como o MongoDB Compass podem relatar que uma coleção aberta está vazia se você removeu vários documentos da coleção usando outra ferramenta como a
mongo
CLI.