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$eachem 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 .