Módulo: Mongoid::Persistable::Upsertable
- Incluído em:
- Mongoid::Persistable
- Definido em:
- lib/mongoid/persistable/upsertable.rb
Visão geral
Define o comportamento para operações de persistência que atualizam documentos.
Recolhimento do Resumo do método de instância
-
#upsert(options = {}) ➤ true
Execute um upsert do documento.
Detalhes do método de instância
#upsert(options = {}) ➤ true
Execute um upsert do documento. Se o documento não existir no banco de banco de dados, o mongo inserirá um novo, caso contrário, os campos serão substituídos por novos valores no documento existente.
Se a opção de substituição for verdadeira, os atributos não especificados serão descartados e, se for falsa, os atributos não especificados serão mantidos. A opção de substituição tem como padrão falso no Mongoid 9.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# Arquivo 'lib/mongoid/persistable/upsertable.rb', linha 33 def upsert( = {}) prepare_upsert() fazer se [:replace] aumentar ArgumentError, 'não é possível especificar:set_on_insert com `substituir: verdadeiro' ' se [:set_on_insert] collection.find(atomic_selector).replace_one( as_attributes, upsert: true, sessão: _session ) mais attrs = { '$set' => as_attributes } attrs['$setOnInsert'] = [:set_on_insert] se [:set_on_insert] collection.find(atomic_selector).update_one( attrs, upsert: true, sessão: _session ) end end end |