Visão geral
Neste guia, você pode aprender como persistir os dados das suas queries no Mongoid. O Mongoid suporta operações de persistência fora dos critérios em uma capacidade limitada, permitindo que você execute de forma expressiva operações de inserção, atualização e exclusão de vários documentos.
Para saber mais sobre como criar critérios de filtro, consulte o guia Especificar uma query de documento.
Para saber mais sobre como executar operações CRUD, consulte o guia Executar operações de dados.
Métodos de persistência
Esta seção descreve métodos que você pode conectar a suas queries para criar, atualizar e excluir dados em suas coleções do MongoDB .
Criar um documento
Você pode usar os seguintes métodos para criar novos documentos a partir de seus critérios de query:
create
: salva uma instância de modelo no MongoDBExemplo:
Band.where(name: 'Daft Punk').create
create!
: Salva uma instância de modelo no MongoDB ou gera uma exceção se ocorrer um erro de validaçãoExemplo:
Band.where(name: 'Daft Punk').create!
build
: cria uma instância de modelo não salvaExemplo:
Band.where(name: 'Daft Punk').build
new
: cria uma instância de modelo não salvaExemplo:
Band.where(name: 'Daft Punk').new
Atualize documentos
Você pode usar os seguintes métodos para atualizar documentos com base em seus critérios de consulta:
update
: Atualiza os atributos do primeiro documento correspondenteExemplo:
Band.where(name: 'Sundown').update(label: 'ABC Records')
update_all
: Atualiza os atributos de todos os documentos correspondentesExemplo:
Band.where(country: 'Canada').update_all(label: 'ABC Records')
add_to_set
: adiciona um valor a uma array especificada em todos os documentos correspondentesExemplo:
Band.where(name: 'Sun Down').add_to_set(label: 'ABC Records')
bit
: Executa uma atualização bitwise de um campoExemplo:
Band.where(name: 'Sun Down').bit(likes: { and: 14, or: 4 })
inc
: Aumenta o valor de um campoExemplo:
Band.where(name: 'Sun Down').inc(likes: 14)
pop
: Remove o primeiro ou último elemento de um campo de arrayExemplo:
Band.where(name: 'Sun Down').pop(members: -1)
pull
: Remove todas as instâncias de um valor ou valores que correspondem a uma condição especificada de um campo de arrayExemplo:
Band.where(name: 'Sun Down').pull(members: 'Jonah Larsen')
pull_all
: Remove todas as instâncias dos valores especificados de um campo de arrayExemplo:
Band.where(name: 'Sun Down').pull_all(:members, [ 'Jonah Larsen', 'Dan Jones' ])
push
: anexa um valor especificado a um campo de arrayExemplo:
Band.where(name: 'Sun Down').push(members: 'Jonah Larsen')
push_all
: anexa um valor especificado usando o operador$each
em um campo de arrayExemplo:
Band.where(name: 'Sun Down').push_all(members: [ 'Jonah Larsen', 'Dan Jones' ])
rename
: renomeia um campo em todos os documentos correspondentesExemplo:
Band.where(name: 'Sun Down').rename(name: :title)
set
: Define um novo valor para um campo especificado em todos os documentos correspondentesExemplo:
Band.where(name: 'Sun Down').set(likes: 10000)
unset
: Exclui um campo específico em todos os documentos correspondentesExemplo:
Band.where(name: 'Sun Down').unset(:likes)
Exclua documentos
Você pode usar os seguintes métodos para excluir documentos com base em seus critérios de query:
delete
: exclui todos os documentos correspondentes.Exemplo:
Band.where(label: 'ABC Records').delete
destroy
: exclui todos os documentos correspondentes durante a execução de callbacks. Este método carrega todos os documentos na memória.Exemplo:
Band.where(label: 'ABC Records').destroy
Informações adicionais
Para saber como personalizar seu destino de persistência, consulte o guia Configuração de persistência .