Classe: Mongo::Collection

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Auxiliares, QueryableEncryption, Retryable
Definido em:
lib/mongo/collection.rb,
lib/mongo/collection/view.rb,
lib/mongo/collection/helpers.rb,
lib/mongo/collection/view/iterable.rb,
lib/mongo/collection/view/readable. rb,
lib/mongo/collection/view/writable.rb,
lib/mongo/collection/view/immutable.rb,
lib/mongo/collection/view/map_reduce.rb,
lib/mongo/collection/view/ agregação.rb,
lib/mongo/collection/view/explainable.rb,
lib/mongo/collection/view/change_stream.rb,
lib/mongo/collection/queryable_encryption.rb,
lib/mongo/collection/view/builder/map_reduce.rb,
lib/ mongo/collection/view/builder/ agregação.rb,
lib/mongo/collection/view/ agregação/behavior.rb,
lib/mongo/collection/view/change_stream/retryable.rb

Visão geral

Representa uma collection no banco de banco de dados e operações que podem ser aplicadas diretamente a uma.

Desde:

  • 2.0.0

Definido sob namespace

Módulos: Auxiliares, Classes de QueryableEncryption : visualização

Colapsode resumo constante

CApped =

A opção limitada.

Desde:

  • 2.1.0

'capped'.congelar
NS =

A constante do campo ns.

Desde:

  • 2.1.0

'ns'.congelar
CHANGEABLE_OPTIONS =

Opções que podem ser atualizadas em uma nova instância de Collection por meio do método #with.

Desde:

  • 2.1.0

[ :read, :read_concern, :write, :write_concern ].congelar
CREATE_COLLECTION_OPTIONS =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Mapa de opções para transformar as opções de criação de collection.

Desde:

  • 2.0.0

{
  :time_series => :timeseries,
  :expire_after => :expireAfterSeconds,
  :clustered_index => :clusteredIndex,
  :change_stream_pre_and_post_images => :changeStreamPreAndPostImages,
  :encrypted_fields => :encryptedFields,
  :validator => :validator,
  :view_on => :viewOn
}

Constantes incluídas de QueryableEncryption

QueryableEncryption::QE2_MIN_WIRE_VERSION

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Métodos incluídos de auxiliares

#do_drop

Métodos incluídos do QueryableEncryption

# maybe_create_qe_collections, # maybe_drop_emm_collections

Métodos incluídos no Retryable

#read_worker, #select_server, #write_worker

Detalhes do construtor

#initialize(banco de dados, name, options = {}) ➤ Collection

Instanciar uma nova collection.

Exemplos:

Instanciar uma nova collection.

Mongo::Collection.new(database, 'test')

Parâmetros:

  • database (Mongo::Database)

    O banco de banco de dados da coleção.

  • name (string, símbolo)

    O nome da collection.

  • opções (Hash) (padrão para: {})

    As opções de collection.

  • opciona (Hash)

    um conjunto personalizável de opções

Hash de opções (opções):

  • :read_concern (Hash)

    O hash de opções de preocupação de leitura , com as seguintes chaves opcionais:

    • :level – o nível de preferência de leitura como um símbolo; valores válidos

      are *:local*, *:majority*, and *:snapshot*
      
  • :read (Hash)

    As opções de read preference. O hash pode ter os seguintes itens:

    • : modo – preferência de leitura especificada como um símbolo; Os valores válidos são :primary, :primary_preferred, :secondary, :secondary_preferred e :nearest.

    • :tag_sets – uma array de hashes.

    • :local_threshold.

  • :session (Sessão)

    A sessão a ser usada para a operação.

  • :size (Inteiro)

    O tamanho da collection limitada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado do banco de dados ou do cliente.

Aumenta:

Desde:

  • 2.0.0



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# Arquivo 'lib/mongo/collection.rb', linha 162

def inicializar(database, name, opções = {})
  aumentar Erro::InvalidCollectionName.Novo a menos que name
  se opções[:write] && opções[:write_concern] && opções[:write] != opções[:write_concern]
    aumentar ArgumentError, "Se :write e :write_concern forem fornecidos, eles devem ser idênticos: #{options.inspect}"
  end
  @database = database
  @name = name.to_s.congelar
  @opções = opções.dup
  @timeout_ms = opções.excluir(:timeout_ms)
=begin Suporte ao objeto WriteConcern
  se @options[:write_concern].is_a?(WriteConcern::Base)
    # Armazene a instância em cache para que não a reconstruamos desnecessariamente.
    @write_concern = @options[:write_concern]
    @options[:write_concern] = @write_concern.options
  end
=end
  @opções.congelar
end

Detalhes do atributo da instância

#databaseMongo::Database (readonly)

Retorna o banco de dados de dados em que a collection reside.

Retorna:

  • (Mongo::Database)

    O banco de dados de dados no qual a collection reside.

Desde:

  • 2.0.0



46
47
48
# Arquivo 'lib/mongo/collection.rb', linha 46

def database
  @database
end

#namestring (somente leitura)

Retorna O nome da coleção.

Retorna:

  • (string)

    O nome da collection.

Desde:

  • 2.0.0



49
50
51
# Arquivo 'lib/mongo/collection.rb', linha 49

def name
  @name
end

#opçõesHash (somente leitura)

Retorna as opções de collection.

Retorna:

  • (Hash)

    As opções de collection.

Desde:

  • 2.0.0



52
53
54
# Arquivo 'lib/mongo/collection.rb', linha 52

def opções
  @opções
end

Detalhes do método de instância

#==(outro) ➤ verdadeiro | false

Verifique se uma coleção é igual a outro objeto. Verificará o nome e o banco de dados de dados quanto à igualdade.

Exemplos:

Verifique a igualdade da coleção.

collection == other

Parâmetros:

  • Outro (Objeto)

    O objeto a ser verificado.

Retorna:

  • (verdadeiro | falso)

    Se os objetos forem iguais.

Desde:

  • 2.0.0



89
90
91
92
# Arquivo 'lib/mongo/collection.rb', linha 89

def ==(Outro)
  Método false a menos que Outro.is_a?(collection)
  name == Outro.name && database == Outro.database && opções == Outro.opções
end

#agregado(pipeline, opções = {}) ➤ Visualizar::Aggregation

Realizar uma agregação na collection.

Exemplos:

Execute uma agregação.

collection.aggregate([ { "$group" => { "_id" => "$city", "tpop" => { "$sum" => "$pop" }}} ])

Parâmetros:

  • gasoduto (Array<Hash>)

    O pipeline de agregação .

  • opções (Hash) (padrão para: {})

    As opções de aggregation.

Hash de opções (opções):

  • :allow_disk_use (verdadeiro | falso)

    Defina como verdadeiro se o uso do disco for permitido durante a agregação.

  • :batch_size (Inteiro)

    O número de documentos a serem devolvidos por lote.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :hint (string)

    O índice a ser usado para a agregação.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no pipeline. Consulte a documentação do servidor para obter detalhes.

  • :max_time_ms (Inteiro)

    O tempo máximo para permitir a execução da consulta, em milissegundos. Esta opção está obsoleta, use :timeout_ms em vez disso.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

Desde:

  • 2.1.0



568
569
570
# Arquivo 'lib/mongo/collection.rb', linha 568

def Agregação(gasoduto, opções = {})
  Vista.Novo(auto, {}, opções).Agregação(gasoduto, opções)
end

#bulk_write(requests, options = {}) ➤ BulkWrite::Result

Execute um lote de operações de gravação em massa.

Exemplos:

Execute uma escrita em massa.

collection.bulk_write(operations, options)

Parâmetros:

  • pedidos (Enumerable<Hash>)

    As solicitações de escrita em massa.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :ordered (verdadeiro | falso)

    Se as operações devem ser executadas em ordem.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro, : fsync => Booleano, :j => Booleano.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :session (Sessão)

    A sessão a ser usada para o conjunto de operações.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

Desde:

  • 2.0.0



942
943
944
# Arquivo 'lib/mongo/collection.rb', linha 942

def bulk_write(pedidos, opções = {})
  Gravação em massa.Novo(auto, pedidos, opções).executar, executar
end

#limitado?verdadeiro | false

A collection é limitada?

Exemplos:

A collection é limitada?

collection.capped?

Retorna:

  • (verdadeiro | falso)

    Se a coleção for limitada.

Desde:

  • 2.0.0



321
322
323
324
325
# Arquivo 'lib/mongo/collection.rb', linha 321

def limitado?
  database.list_collections(filtro: { nome: name })
    .primeiro
    &.dig('options', CApped) || false
end

#count(filter = nil, options = {}) ⇒ Inteiro

Obsoleto.

Use #count_documents ou estimated_document_count em vez disso. No entanto, observe que os seguintes operadores precisarão ser substituídos ao mudar para #count_documents:

* $where should be replaced with $expr (only works on 3.6+)
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphere

Obtém um número estimado de documentos correspondentes na collection.

Exemplos:

Faça a contagem.

collection.count(name: 1)

Parâmetros:

  • filtro, filtro (Hash) (padrão para: nil)

    Um filtro para documentos correspondentes.

  • opções (Hash) (padrão para: {})

    As opções de contagem.

Hash de opções (opções):

  • :hint (Hash)

    O índice a ser utilizado.

  • :limit (Inteiro)

    O número máximo de documentos a contar.

  • :max_time_ms (Inteiro)

    O tempo máximo para permitir a execução da consulta, em milissegundos. Esta opção está obsoleta, use :timeout_ms em vez disso.

  • :skip (Inteiro)

    O número de documentos a ignorar antes de contar.

  • :read (Hash)

    As opções de preferência de leitura .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (Inteiro)

    A contagem de documento .

Desde:

  • 2.1.0



685
686
687
# Arquivo 'lib/mongo/collection.rb', linha 685

def contar(filtro, filtro = nada, opções = {})
  Vista.Novo(auto, filtro, filtro || {}, opções).contar(opções)
end

#count_documents(filter = {}, options = {}) ➤ inteiro

Obtém o número de documentos correspondentes à query. Ao contrário do método #count obsoleto, isso retornará o número exato de documentos que correspondem ao filtro (ou o número exato de documentos na coleção, se nenhum filtro for fornecido) em vez de uma estimativa.

Use #estimated_document_count para recuperar uma estimativa do número de documentos na coleção usando os metadados da coleção.

Parâmetros:

  • filtro, filtro (Hash) (padrão para: {})

    Um filtro para documentos correspondentes.

  • opções (Hash) (padrão para: {})

    Opções para a operação.

Hash de opções (opções):

  • :skip (Inteiro)

    O número de documentos a ignorar.

  • :hint (Hash)

    Substituir seleção de índice padrão e forçar o MongoDB a usar um índice específico para a query. Requer versão do servidor 3.6+.

  • :limit (Inteiro)

    Número máximo de Docs para contar.

  • :max_time_ms (Inteiro)

    A quantidade máxima de tempo para permitir a execução do comando.

  • :read (Hash)

    As opções de preferência de leitura .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (Inteiro)

    A contagem de documento .

Desde:

  • 2.6.0



719
720
721
# Arquivo 'lib/mongo/collection.rb', linha 719

def count_documents(filtro, filtro = {}, opções = {})
  Vista.Novo(auto, filtro, filtro, opções).count_documents(opções)
end

#create(opts = {}) ➤ Resultado

Forçar a criação da collection no banco de banco de dados.

Exemplos:

Forçar a criação da collection.

collection.create

Parâmetros:

  • opciona (Hash) (padrão para: {})

    As opções para a operação de criação.

Hash de opções (opts):

  • :capped (verdadeiro | falso)

    Crie uma collection de tamanho fixo.

  • :change_stream_pre_and_post_images (Hash)

    Usado para habilitar pré e pós-imagens na coleção criada. O hash pode ter os seguintes itens:

    • :enabled – verdadeiro ou falso.

  • :clustered_index (Hash)

    Crie um índice clusterizado. Esta opção especifica como esta coleção deve ser agrupada em _id. O hash pode ter os seguintes itens:

    • :key – O campo-chave do índice clusterizado. Deve ser definido como { _id: 1 }.

    • :unique – Deve ser definido como verdadeiro. A collection não aceitará documentos inseridos nem atualizados em que o valor da chave de índice clusterizado corresponda a um valor existente no índice.

    • :name – Opcional. Um nome que identifica exclusivamente o índice clusterizado.

  • :collation (Hash)

    O agrupamento a ser usado ao criar a collection. Esta opção não será enviada ao servidor ao chamar métodos de coleção.

  • :encrypted_fields (Hash)

    Hash que descreve campos criptografados para Queryable Encryption.

  • :expire_after (Inteiro)

    Número que indica após quantos segundos os dados da série temporal devem ser excluídos.

  • :max (Inteiro)

    O número máximo de documentos em uma collection limitada. O limite de tamanho tem precedência sobre o máximo.

  • :pipeline (Array<Hash>)

    Uma array de estágios do pipeline. Uma visualização será criada aplicando este pipeline à collection ou visualização view_on.

  • :session (Sessão)

    A sessão a ser usada para a operação.

  • :size (Inteiro)

    O tamanho da collection limitada.

  • :time_series (Hash)

    Crie uma coleção de séries temporais. O hash pode ter os seguintes itens:

    • :timeField – O nome do campo que contém a data em cada documento de série temporal.

    • :metaField – O nome do campo que contém metadados em cada documento de série temporal.

    • :granularity – Defina a granularidade para o valor que é a correspondência mais próxima do intervalo de tempo entre as medições de entrada consecutivas. Os valores possíveis são "segundos" (padrão), "minutos" e "horas".

  • :validator (Hash)

    Hash descrevendo as opções de validação do documento para a coleção.

  • :view_on (string)

    O nome da coleção de origem ou visualização a partir da qual criar uma visualização.

  • :write (Hash)

    Obsoleto. Equivalente à opção :write_concern.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro|String, : fsync => Booleano, :j => Booleano.

Retorna:

  • (Resultado)

    O resultado do comando.

Desde:

  • 2.0.0



382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
# Arquivo 'lib/mongo/collection.rb', linha 382

def criar(opciona = {})
  # Passar opções de leitura para criar um comando faz com que ele seja interrompido.
  # Filtre as opções de leitura. A sessão também é excluída aqui, pois fica
  # usado pela chamada para with_session e não deve fazer parte do
  # operação. Se for passado para a operação, falhará BSON
  # serialização.
  # TODO coloca a lista de opções de leitura em uma constante de nível de classe quando
  # descobrirmos qual é o conjunto completo deles.
  opções = Hash[auto.opções.mesclar(opciona).rejeitar fazer |chave, valor|
    %w(ler read_preference read_concern session).incluir?(chave.to_s)
  end]
  # Convertendo opções Ruby para estilo de servidor .
  CREATE_COLLECTION_OPTIONS.cada fazer |ruby_key, server_key|
    se opções.chave?(ruby_key)
      opções[server_key] = opções.excluir(ruby_key)
    end
  end
  operação = { :create => name }.mesclar(opções)
  operação.excluir(:write)
  operação.excluir(:write_concern)
  Cliente.enviar(:with_session, opciona) fazer |session|
    write_concern = se opciona[:write_concern]
      Escreva preocupação.obter(opciona[:write_concern])
    mais
      auto.write_concern
    end

    Contexto = (operação)::Contexto.Novo(
      cliente: Cliente,
      sessão: session
    )
    talvez_create_qe_collections(opciona[:encrypted_fields], Cliente, session) fazer |campos_criptografados|
      (operação)::criar.Novo(
        seletor: operação,
        db_name: database.name,
        write_concern: write_concern,
        sessão: session,
        # Observe que essas são opções de collection e o agrupamento não é
        # retirado das opções passadas para o método de criação.
        agrupamento: opções[:collation] || opções['agrupamento'],
        encryption_fields: campos_criptografados,
        validator: opções[:validator],
      ).executar, executar(
        próximo_primary(nada, session),
        contexto: Contexto
      )
    end
  end
end

#delete_many(filter = nil, options = {}) ➤ Resultado

Remover documentos da coleção.

Exemplos:

Remover vários documentos da coleção.

collection.delete_many

Parâmetros:

  • filtro, filtro (Hash) (padrão para: nil)

    O filtro a ser usado.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (Resultado)

    A resposta do banco de banco de dados.

Desde:

  • 2.1.0



994
995
996
# Arquivo 'lib/mongo/collection.rb', linha 994

def delete_many(filtro, filtro = nada, opções = {})
  find(filtro, filtro, opções).delete_many(opções)
end

#delete_one(filter = nil, options = {}) ➤ Resultado

Remover um documento da coleção.

Exemplos:

Remova um único documento da coleção.

collection.delete_one

Parâmetros:

  • filtro, filtro (Hash) (padrão para: nil)

    O filtro a ser usado.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (Resultado)

    A resposta do banco de banco de dados.

Desde:

  • 2.1.0



968
969
970
# Arquivo 'lib/mongo/collection.rb', linha 968

def delete_one(filtro, filtro = nada, opções = {})
  find(filtro, filtro, opções).delete_one(opções)
end

#distinct(field_name, filter = nil, options = {}) ➤ Array<Object>

Obtenha uma lista de valores distintos para um campo específico .

Exemplos:

Obtenha os valores distintos.

collection.distinct('name')

Parâmetros:

  • field_name (Símbolo, string)

    O nome do campo.

  • filtro, filtro (Hash) (padrão para: nil)

    Os documentos a partir dos quais recuperar os valores distintos.

  • opções (Hash) (padrão para: {})

    As distintas opções de comando.

Hash de opções (opções):

  • :max_time_ms (Inteiro)

    O tempo máximo para permitir a execução da consulta, em milissegundos. Esta opção está obsoleta, use :timeout_ms em vez disso.

  • :read (Hash)

    As opções de preferência de leitura .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (Array<Object>)

    A lista de valores distintos.

Desde:

  • 2.1.0



771
772
773
# Arquivo 'lib/mongo/collection.rb', linha 771

def distinto(field_name, filtro, filtro = nada, opções = {})
  Vista.Novo(auto, filtro, filtro || {}, opções).distinto(field_name, opções)
end

#drop(opts = {}) ➤ Resultado

Observação:

Um erro retornado se a coleção não existir será suprimido.

Solte a coleção. Também eliminará todos os índices associados à coleção, bem como as coleções de Queryable Encryption associadas.

Exemplos:

Solte a coleção.

collection.drop

Parâmetros:

  • opciona (Hash) (padrão para: {})

    As opções para a operação de soltar.

  • opções (Hash)

    um conjunto personalizável de opções

Hash de opções (opts):

  • :session (Sessão)

    A sessão a ser usada para a operação.

  • :write_concern (Hash)

    As opções de preocupação de gravação .

  • :encrypted_fields (Hash | nulo)

    Hash de campos criptografados que foi fornecido para o assistente de coleção 'create'.

Retorna:

  • (Resultado)

    O resultado do comando.

Desde:

  • 2.0.0



454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
# Arquivo 'lib/mongo/collection.rb', linha 454

def derrubar(opciona = {})
  Cliente.with_session(opciona) fazer |session|
    talvez_drop_emm_coleções(opciona[:encrypted_fields], Cliente, session) fazer
      temp_write_concern = write_concern
      write_concern = se opciona[:write_concern]
        Escreva preocupação.obter(opciona[:write_concern])
      mais
        temp_write_concern
      end
      Contexto = (operação)::Contexto.Novo(
        cliente: Cliente,
        sessão: session,
        operation_timeouts: operation_timeouts(opciona)
      )
      operação = (operação)::descartar.Novo({
        seletor: { :drop => name },
        db_name: database.name,
        write_concern: write_concern,
        sessão: session,
      })
      do_drop(operação, session, Contexto)
    end
  end
end

No.

Obtém uma estimativa do número de documentos na collection usando os metadados da collection.

Use #count_documents para recuperar o número exato de documentos na coleta ou para contar documentos correspondentes a um filtro.

Parâmetros:

  • opções (Hash) (padrão para: {})

    Opções para a operação.

Hash de opções (opções):

  • :max_time_ms (Inteiro)

    A quantidade máxima de tempo para permitir que o comando seja executado no servidor.

  • :read (Hash)

    As opções de preferência de leitura .

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (Inteiro)

    A contagem de documento .

Desde:

  • 2.6.0



744
745
746
# Arquivo 'lib/mongo/collection.rb', linha 744

def estimated_document_count(opções = {})
  Vista.Novo(auto, {}, opções).estimated_document_count(opções)
end

#encontrar(filter = nil, opções = {}) ➤ CollectionView

Encontre documentos na coleção.

Exemplos:

Encontre documentos na coleção por um seletor.

collection.find(name: 1)

Obtenha todos os documentos em uma coleção.

collection.find

Parâmetros:

  • filtro, filtro (Hash) (padrão para: nil)

    O filtro a ser usado no find.

  • opções (Hash) (padrão para: {})

    As opções para a descoberta.

Hash de opções (opções):

  • :allow_disk_use (verdadeiro | falso)

    When set to true, the server can write temporary data to disk while executing the find operation. Esta opção só está disponível nas versões 4.4 e mais recentes do MongoDB Server.

  • :allow_partial_results (verdadeiro | falso)

    Permite que a query obtenha resultados parciais se alguns shards estiverem inativos.

  • :batch_size (Inteiro)

    O número de documentos retornados em cada lote de resultados do MongoDB.

  • :collation (Hash)

    O agrupamento a ser usado.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :cursor_type (:tailable, :tailable_await)

    O tipo de cursor a ser usado.

  • :limit (Inteiro)

    O número máximo de Docs a retornar da consulta.

  • :max_time_ms (Inteiro)

    O tempo máximo para permitir a execução da consulta, em milissegundos. Esta opção está obsoleta, use :timeout_ms em vez disso.

  • :modifiers (Hash)

    Um documento contendo meta-operadores modificando a saída ou comportamento de uma query.

  • :no_cursor_timeout (verdadeiro | falso)

    O servidor normalmente atinge o tempo limite dos cursores ociosos após um período de inatividade (10 minutos) para evitar o uso excessivo de memória. Defina esta opção para evitar isso.

  • :oplog_replay (verdadeiro | falso)

    Somente para uso de replicação interna, os aplicativos não devem definir essa opção.

  • :projection (Hash)

    Os campos a incluir ou excluir de cada documento no conjunto de resultados.

  • :session (Sessão)

    A sessão a ser usada.

  • :skip (Inteiro)

    O número de Docs a ignorar antes de retornar os resultados.

  • :sort (Hash)

    Os pares de chave e direção pelos quais o conjunto de resultados será classificado.

  • :timeout_mode (:cursor_Lifetime |:iteration)

    Como interpretar :timeout_ms (se ele se aplica à vida útil do cursor ou por iteração).

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (CollectionView)

    A visualização da collection.

Desde:

  • 2.0.0



532
533
534
# Arquivo 'lib/mongo/collection.rb', linha 532

def find(filtro, filtro = nada, opções = {})
  Vista.Novo(auto, filtro, filtro || {}, opções)
end

#find_one_and_delete(filter, options = {}) ➤ BSON::Document?

Localiza um único documento no banco de dados via findAndModify e o exclui, devolvendo o documento original.

Exemplos:

Encontre um documento e exclua-o.

collection.find_one_and_delete(name: 'test')

Parâmetros:

  • filtro, filtro (Hash)

    O filtro a ser usado.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :max_time_ms (Inteiro)

    O tempo máximo para permitir a execução da consulta, em milissegundos. Esta opção está obsoleta, use :timeout_ms em vez disso.

  • :projection (Hash)

    Os campos a serem incluídos ou excluídos no documento retornado.

  • :sort (Hash)

    Os pares de chave e direção pelos quais o conjunto de resultados será classificado.

  • :write_concern (Hash)

    As opções de write concern. O padrão é a preocupação de escrita da coleção.

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (BSON::Document, nil)

    O documento, se encontrado.

Desde:

  • 2.1.0



1157
1158
1159
# Arquivo 'lib/mongo/collection.rb', linha 1157

def find_one_and_delete(filtro, filtro, opções = {})
  find(filtro, filtro, opções).find_one_and_delete(opções)
end

#find_one_and_replace(filtro, substituição, opções = {}) ➤ BSON::Document

Localiza um único documento e o substitui, retornando o documento original, a menos que especificado de outra forma.

Exemplos:

Encontre um documento e substitua-o, devolvendo o original.

collection.find_one_and_replace({ name: 'test' }, { name: 'test1' })

Encontre um documento e substitua-o, retornando o novo documento.

collection.find_one_and_replace({ name: 'test' }, { name: 'test1' }, :return_document => :after)

Parâmetros:

  • filtro, filtro (Hash)

    O filtro a ser usado.

  • substituição (BSON::Document)

    O documento de substituição.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :max_time_ms (Inteiro)

    A quantidade máxima de tempo para permitir que o comando seja executado em milissegundos.

  • :projection (Hash)

    Os campos a serem incluídos ou excluídos no documento retornado.

  • :sort (Hash)

    Os pares de chave e direção pelos quais o conjunto de resultados será classificado.

  • :return_document (Símbolo)

    :before ou :after.

  • :upsert (verdadeiro | falso)

    Se deve ser atualizado se o documento não existe.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :write_concern (Hash)

    As opções de write concern. O padrão é a preocupação de escrita da coleção.

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (BSON::Document)

    O documento.

Desde:

  • 2.1.0



1243
1244
1245
# Arquivo 'lib/mongo/collection.rb', linha 1243

def find_one_and_replace(filtro, filtro, substituição, opções = {})
  find(filtro, filtro, opções).find_one_and_update(substituição, opções)
end

#find_one_and_update(filter, update, options = {}) ➤ BSON::Document

Localiza um único documento via findAndModify e o atualiza, retornando o documento original, a menos que especificado de outra forma.

Exemplos:

Encontre um documento e atualize-o, devolvendo o original.

collection.find_one_and_update({ name: 'test' }, { "$set" => { name: 'test1' }})

Encontre um documento e atualize-o, retornando o documento atualizado.

collection.find_one_and_update({ name: 'test' }, { "$set" => { name: 'test1' }}, :return_document => :after)

Parâmetros:

  • filtro, filtro (Hash)

    O filtro a ser usado.

  • update (Hash | Array<Hash>)

    O documento ou pipeline de atualização.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :max_time_ms (Inteiro)

    A quantidade máxima de tempo para permitir que o comando seja executado em milissegundos.

  • :projection (Hash)

    Os campos a serem incluídos ou excluídos no documento retornado.

  • :sort (Hash)

    Os pares de chave e direção pelos quais o conjunto de resultados será classificado.

  • :return_document (Símbolo)

    :before ou :after.

  • :upsert (verdadeiro | falso)

    Se deve ser atualizado se o documento não existe.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :write_concern (Hash)

    As opções de write concern. O padrão é a preocupação de escrita da coleção.

  • :collation (Hash)

    O agrupamento a ser usado.

  • :array_filters (Array)

    Um conjunto de filtros que especificam a quais elementos da array uma atualização deve ser aplicada.

  • :session (Sessão)

    A sessão a ser usada.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (BSON::Document)

    O documento.

Desde:

  • 2.1.0



1201
1202
1203
# Arquivo 'lib/mongo/collection.rb', linha 1201

def find_one_and_update(filtro, filtro, update, opções = {})
  find(filtro, filtro, opções).find_one_and_update(update, opções)
end

#indexes(options = {}) ⇒ Index::View

Tenha uma visão de todos os índices dessa collection. Pode ser iterado ou tem mais operações.

Exemplos:

Obtenha a visualização do índice.

collection.indexes

Parâmetros:

  • opções (Hash) (padrão para: {})

    Opções para obter uma lista de todos os índices.

Hash de opções (opções):

  • :session (Sessão)

    A sessão a ser usada.

Retorna:

Desde:

  • 2.0.0



788
789
790
# Arquivo 'lib/mongo/collection.rb', linha 788

def Índices(opções = {})
  Index::Vista.Novo(auto, opções)
end

#insert_many(documents, options = {}) ⇒ Result

Insira os documentos fornecidos na coleção.

Exemplos:

Insira documento na collection.

collection.insert_many([{ name: 'test' }])

Parâmetros:

  • documentos (Enumerable<Hash>)

    Os documentos a inserir.

  • opções (Hash) (padrão para: {})

    As opções de inserção.

Hash de opções (opções):

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :ordered (verdadeiro | falso)

    Se as operações devem ser executadas em ordem.

  • :session (Sessão)

    A sessão a ser usada para a operação.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro, : fsync => Booleano, :j => Booleano.

Retorna:

  • (Resultado)

    O wrapper de resposta do banco de dados de dados.

Desde:

  • 2.0.0



910
911
912
913
914
915
# Arquivo 'lib/mongo/collection.rb', linha 910

def insert_many(documentos, opções = {})
  Cache de consulta.clear_namespace(namespace)

  Inserções = documentos.map{ |doc| { :insert_one => doc }}
  bulk_write(Inserções, opções)
end

#insert_one(documento, opts = {}) ➤ Resultado

Insira um único documento na coleção.

Exemplos:

Inserir um documento na coleção.

collection.insert_one({ name: 'test' })

Parâmetros:

  • documento (Hash)

    O documento a inserir.

  • opciona (Hash) (padrão para: {})

    As opções de inserção.

  • opções (Hash)

    um conjunto personalizável de opções

Hash de opções (opts):

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :session (Sessão)

    A sessão a ser usada para a operação.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro, : fsync => Booleano, :j => Booleano.

Retorna:

  • (Resultado)

    O wrapper de resposta do banco de dados de dados.

Desde:

  • 2.0.0



849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
# Arquivo 'lib/mongo/collection.rb', linha 849

def insert_one(documento, opciona = {})
  Cache de consulta.clear_namespace(namespace)

  Cliente.with_session(opciona) fazer |session|
    write_concern = se opciona[:write_concern]
      Escreva preocupação.obter(opciona[:write_concern])
    mais
      write_concern_with_session(session)
    end

    se documento.nada?
      aumentar ArgumentError, "O documento a ser inserido não pode ser nulo"
    end

    Contexto = (operação)::Contexto.Novo(
      cliente: Cliente,
      sessão: session,
      operation_timeouts: operation_timeouts(opciona)
      )
    write_with_retry(write_concern, contexto: Contexto) fazer |Conexão, txn_num, Contexto|
      (operação)::Insert.Novo(
        :documents => [ documento ],
        :db_name => database.name,
        :coll_name => name,
        :write_concern => write_concern,
        :bypass_document_validation => !!opciona[:bypass_document_validation],
        :opções => opciona,
        :id_generator => Cliente.opções[:id_generator],
        :session => session,
        :txn_num => txn_num,
        :comentário => opciona[:comentário]
      ).execute_with_connection(Conexão, contexto: Contexto)
    end
  end
end

#inspecionarstring

Obtenha uma inspeção de string bem impressa para a coleção.

Exemplos:

Inspecione a coleção.

collection.inspect

Retorna:

  • (string)

    A inspeção da collection.

Desde:

  • 2.0.0



822
823
824
# Arquivo 'lib/mongo/collection.rb', linha 822

def inspecionar
  "#<Mongo::Collection:0x#{object_id} namespace=#{namespace}>"
end

#namespacestring

Obtenha o namespace totalmente qualificado da coleção.

Exemplos:

Obtenha o namespace totalmente qualificado .

collection.namespace

Retorna:

  • (string)

    O namespace da collection.

Desde:

  • 2.0.0



1255
1256
1257
# Arquivo 'lib/mongo/collection.rb', linha 1255

def namespace
  "#{banco de dados.name}.#{name}"
end

#operation_timeouts(opts = {}) ➤ Hash

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o valor de timeout_ms definido no nível de operação (se houver) e/ou timeout_ms definido no nível de coleção/ banco de dados/ cliente (se houver).

Retorna:

  • (Hash)

    valor de timeout_ms definido no nível de operação (se houver) e/ou timeout_ms definido no nível de coleção/ banco de dados/ cliente (se houver).

Desde:

  • 2.0.0



1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
# Arquivo 'lib/mongo/collection.rb', linha 1280

def operation_timeouts(opciona = {})
  # TODO: Devemos reavaliar se precisamos de dois tempos limite separadamente.
  {}.toque fazer |Resultado|
    se opciona[:timeout_ms].nada?
      Resultado[:inherited_timeout_ms] = timeout_ms
    mais
      Resultado[:operation_timeout_ms] = opciona.excluir(:timeout_ms)
    end
  end
end

#parallel_scan(cursor_count, options = {}) ➤ Array<Cursor>

Execute uma verificação paralela na visualização da collection.

Retorna uma lista de até cursor_count cursores que podem ser iterados simultaneamente. Desde que a coleção não seja modificada durante a digitalização, cada documento aparece uma vez em um dos conjuntos de resultados dos cursores.

Exemplos:

Execute uma varredura de coleção paralela.

collection.parallel_scan(2)

Parâmetros:

  • cursor_count (Inteiro)

    O número máximo de cursores a serem retornados.

  • opções (Hash) (padrão para: {})

    As opções de comando de varredura paralela.

Hash de opções (opções):

  • :max_time_ms (Inteiro)

    O tempo máximo para permitir a execução da consulta, em milissegundos. Esta opção está obsoleta, use :timeout_ms em vez disso.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_mode (:cursor_Lifetime |:iteration)

    Como interpretar :timeout_ms (se ele se aplica à vida útil do cursor ou por iteração).

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (Array <Cursor>)

    Uma array de cursores.

Desde:

  • 2.1



1025
1026
1027
# Arquivo 'lib/mongo/collection.rb', linha 1025

def parallel_scan(cursor_count, opções = {})
  find({}, opções).parallel_scan(cursor_count, opções)
end

#read_concern ➤ Hash

Obtenha a preocupação de leitura efetiva para esta instância de coleção.

Se uma read concern for fornecida nas opções de collection, essa read concern será retornada, caso contrário, a read concern efetiva do banco de dados será retornada.

Exemplos:

Obtenha a preocupação de leitura.

collection.read_concern

Retorna:

  • (Hash)

    A read concern.

Desde:

  • 2.2.0



193
194
195
# Arquivo 'lib/mongo/collection.rb', linha 193

def read_concern
  opções[:read_concern] || database.read_concern
end

#read_preference ➤ Hash

Obtenha a preferência de leitura efetiva para esta coleção.

Se uma preferência de leitura foi fornecida nas opções de coleta, essa preferência de leitura será retornada, caso contrário, a preferência de leitura efetiva do banco de dados será retornada.

Exemplos:

Obtenha a read preference.

collection.read_preference

Retorna:

  • (Hash)

    A preferência de leitura.

Desde:

  • 2.0.0



221
222
223
# Arquivo 'lib/mongo/collection.rb', linha 221

def read_preference
  @read_preference ||= opções[:read] || database.read_preference
end

#replace_one(filtro, substituição, opções = {}) ➤ Resultado

Substitui um único documento na coleção pelo novo documento.

Exemplos:

Substitui um único documento.

collection.replace_one({ name: 'test' }, { name: 'test1' })

Parâmetros:

  • filtro, filtro (Hash)

    O filtro a ser usado.

  • substituição (Hash)

    O documento de substituição ..

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :upsert (verdadeiro | falso)

    Se deve ser atualizado se o documento não existe.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (Resultado)

    A resposta do banco de banco de dados.

Desde:

  • 2.1.0



1056
1057
1058
# Arquivo 'lib/mongo/collection.rb', linha 1056

def replace_one(filtro, filtro, substituição, opções = {})
  find(filtro, filtro, opções).replace_one(substituição, opções)
end

#search_indexes(options = {}) ➤ SearchIndex::View

Observação:

Somente um de id ou nome pode ser fornecido; é um erro especificar ambos, embora ambos possam ser omitidos com segurança.

Tenha uma visão de todos os índices de pesquisa dessa collection. Pode ser iterado ou operado diretamente. Se id ou nome forem fornecidos, o iterador retornará apenas o índice indicado. Para todas as outras operações, id e nome são ignorados.

Parâmetros:

  • opções (Hash) (padrão para: {})

    As opções a serem usadas para configurar a visualização.

Hash de opções (opções):

  • :id (string)

    A ID do índice específico para query (opcional)

  • :name (string)

    O nome do índice específico para query (opcional)

  • :aggregate (Hash)

    O hash de opções para passar para o comando agregado (opcional)

Retorna:

Desde:

  • 2.0.0



810
811
812
# Arquivo 'lib/mongo/collection.rb', linha 810

def search_indexes(opções = {})
  Índice de pesquisa::Vista.Novo(auto, opções)
end

#server_selector ➤ Mongo::ServerSelector

Obtenha o seletor de servidor para esta collection.

Exemplos:

Obtenha o seletor de servidor.

collection.server_selector

Retorna:

Desde:

  • 2.0.0



205
206
207
# Arquivo 'lib/mongo/collection.rb', linha 205

def server_selector
  @server_selector ||= ServerSelector.obter(read_preference || database.server_selector)
end

#system_collection?Booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Se a collection é uma collection de sistema.

Retorna:

  • (Booleano)

    Se o sistema é uma collection de sistema.

Desde:

  • 2.0.0



1264
1265
1266
# Arquivo 'lib/mongo/collection.rb', linha 1264

def system_collection?
  name.start_with?('.')
end

#timeout_msInteger | nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o tempo limite da operação que é para esse banco de dados ou para o cliente correspondente.

Retorna:

  • (Inteiro | nil)

    Tempo limite de operação para esse banco de dados ou para o cliente correspondente .

Desde:

  • 2.0.0



1272
1273
1274
# Arquivo 'lib/mongo/collection.rb', linha 1272

def timeout_ms
  @timeout_ms || database.timeout_ms
end

#update_many(filter, update, options = {}) ⇒ Result

Atualizar documentos na coleção.

Exemplos:

Atualizar vários documentos na coleção.

collection.update_many({ name: 'test'}, '$set' => { name: 'test1' })

Parâmetros:

  • filtro, filtro (Hash)

    O filtro a ser usado.

  • update (Hash | Array<Hash>)

    O documento ou pipeline de atualização.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :upsert (verdadeiro | falso)

    Se deve ser atualizado se o documento não existe.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :array_filters (Array)

    Um conjunto de filtros que especificam a quais elementos da array uma atualização deve ser aplicada.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (Resultado)

    A resposta do banco de banco de dados.

Desde:

  • 2.1.0



1089
1090
1091
# Arquivo 'lib/mongo/collection.rb', linha 1089

def update_many(filtro, filtro, update, opções = {})
  find(filtro, filtro, opções).update_many(update, opções)
end

#update_one(filter, update, options = {}) ⇒ Result

Atualizar um único documento na coleção.

Exemplos:

Atualizar um único documento na coleção.

collection.update_one({ name: 'test'}, '$set' => { name: 'test1'})

Parâmetros:

  • filtro, filtro (Hash)

    O filtro a ser usado.

  • update (Hash | Array<Hash>)

    O documento ou pipeline de atualização.

  • opções (Hash) (padrão para: {})

    As opções.

Hash de opções (opções):

  • :upsert (verdadeiro | falso)

    Se deve ser atualizado se o documento não existe.

  • :bypass_document_validation (verdadeiro | falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :array_filters (Array)

    Um conjunto de filtros que especificam a quais elementos da array uma atualização deve ser aplicada.

  • :session (Sessão)

    A sessão a ser usada.

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

  • :hint (Hash | string)

    O índice a ser usado para essa operação. Pode ser especificado como um Hash (por exemplo { _id: 1 }) ou uma string (por exemplo "ID ").

  • :let (Hash)

    Mapeamento de variáveis a serem usadas no comando. Consulte a documentação do servidor para obter detalhes.

Retorna:

  • (Resultado)

    A resposta do banco de banco de dados.

Desde:

  • 2.1.0



1122
1123
1124
# Arquivo 'lib/mongo/collection.rb', linha 1122

def update_one(filtro, filtro, update, opções = {})
  find(filtro, filtro, opções).update_one(update, opções)
end

#watch(pipeline = [], options = {}) ➤ ChangeStream

Observação:

Um change stream permite apenas a preocupação de leitura de "maioria".

Observação:

Este método auxiliar é preferível a executar uma agregação bruta com um estágio $changeStream, com a finalidade de apoiar a capacidade de retomada.

A partir da versão 3.6 do servidor MongoDB, um estágio de pipeline "$changeStream" é suportado no framework de aggregation. Este estágio permite que os usuários solicitem o envio de notificações para todas as alterações em uma coleção específica.

Exemplos:

Receba notificações de alteração para uma determinada collection.

collection.watch([{ '$match' => { operationType: { '$in' => ['insert', 'replace'] } } }])

Parâmetros:

  • gasoduto (Array<Hash>) (padrão para: [])

    Operadores de filtro adicionais opcionais.

  • opções (Hash) (padrão para: {})

    As opções de change stream.

Hash de opções (opções):

  • :full_document (string)

    Valores permitidos: nil, 'default', 'updateLookup', 'whenAvailable', 'required'.

    O padrão é não enviar um valor (ou seja, nil), que é equivalente a "padrão". Por padrão, a notificação de alteração para atualizações parciais incluirá um delta descrevendo as alterações no documento.

    Quando definido como 'updateLookup', a notificação de alteração para atualizações parciais incluirá um delta descrevendo as alterações no documento, bem como uma cópia de todo o documento que foi alterado algum tempo após a ocorrência da alteração.

    Quando definido como 'whenAvailable', configura o fluxo de alterações para retornar a pós-imagem do documento modificado para eventos de alteração de substituição e atualização se a pós-imagem desse evento estiver disponível.

    Quando definido como "obrigatório", tem o mesmo comportamento de "whenAvailable", exceto pelo fato de que um erro é gerado se a pós-imagem não estiver disponível.

  • :full_document_before_change (string)

    Valores permitidos: nil, 'whenAvailable', 'required', 'off'.

    O padrão é não enviar um valor (ou seja, nil), que é equivalente a "off".

    Quando definido como "whenAvailable", configura o change stream para retornar a pré-imagem do documento modificado para substituir, atualizar e excluir eventos de alteração, se estiver disponível.

    Quando definido como "obrigatório", tem o mesmo comportamento de "whenAvailable", exceto pelo fato de que um erro é gerado se a pré-imagem não estiver disponível.

  • :resume_after (BSON::Document, Hash)

    Especifica o ponto de partida lógico para o novo fluxo de alteração.

  • :max_await_time_ms (Inteiro)

    O tempo máximo para o servidor aguardar novos documentos para atender a uma query de fluxo de alterações.

  • :batch_size (Inteiro)

    O número de documentos a serem devolvidos por lote.

  • :collation (BSON::Document, Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :start_at_operation_time (BSON::Timestamp)

    Retornar apenas alterações que ocorreram no momento ou após o registro de data/hora especificado. Qualquer comando executado no servidor retornará um tempo de cluster que pode ser usado aqui. Reconhecido apenas pelas versões do servidor 4.0+.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :show_expanded_events (Booleano)

    Permite que o servidor envie a lista "expandida" de eventos de fluxo de alterações. A lista de eventos adicionais incluídos com este conjunto de sinalizadores é: createIndexes, dropIndexes, modify, create, shardCollection, reshardCollection, refineCollectionShardKey.

  • :timeout_mode (:cursor_Lifetime |:iteration)

    Como interpretar :timeout_ms (se ele se aplica à vida útil do cursor ou por iteração).

  • :timeout_ms (Inteiro)

    O tempo limite da operação em milissegundos. Deve ser um número inteiro não negativo. Um valor explícito de 0 significa infinito. O valor padrão não está definido, o que significa que o valor é herdado da coleção, do banco de dados ou do cliente.

Retorna:

  • (ChangeStream)

    O objeto de fluxo de alterações.

Desde:

  • 2.5.0



646
647
648
649
650
# Arquivo 'lib/mongo/collection.rb', linha 646

def assistir(gasoduto = [], opções = {})
  view_options = opções.dup
  view_options[:cursor_type] = :tailable_await se opções[:max_await_time_ms]
  Vista::Change stream.Novo(Vista.Novo(auto, {}, view_options), gasoduto, nada, opções)
end

#com(new_options) ➤ Mongo::Collection

Retorna Uma nova instância de coleção.

Exemplos:

Obtenha uma coleção com uma preocupação de leitura alterada.

collection.with(read_concern: { level: :majority })

Obtenha uma collection com uma preocupação de gravação alterada.

collection.with(write_concern: { w:  3 })

Parâmetros:

  • new_options (Hash)

    As novas opções a serem usadas.

Opções de hash (new_options):

  • :read (Hash)

    As opções de read preference. O hash pode ter os seguintes itens:

    • : modo – preferência de leitura especificada como um símbolo; Os valores válidos são :primary, :primary_preferred, :secondary, :secondary_preferred e :nearest.

    • :tag_sets – uma array de hashes.

    • :local_threshold.

  • :read_concern (Hash)

    O hash de opções de preocupação de leitura , com as seguintes chaves opcionais:

    • :level – o nível de preferência de leitura como um símbolo; valores válidos

      are *:local*, *:majority*, and *:snapshot*
      
  • :write (Hash)

    Obsoleto. Equivalente à opção :write_concern.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro|String, : fsync => Booleano, :j => Booleano.

Retorna:

Desde:

  • 2.1.0



299
300
301
302
303
304
305
306
307
308
309
310
311
# Arquivo 'lib/mongo/collection.rb', linha 299

def com(new_options)
  new_options.keys.cada fazer |k|
    aumentar Erro::UnchangeableCollectionOption.Novo(k) a menos que CHANGEABLE_OPTIONS.incluir?(k)
  end
  opções = @opções.dup
  se opções[:write] && new_options[:write_concern]
    opções.excluir(:write)
  end
  se opções[:write_concern] && new_options[:write]
    opções.excluir(:write_concern)
  end
  collection.Novo(database, name, opções.update(new_options))
end

#write_concern ➤ Mongo::WriteConcern

Obtenha a preocupação de escrita eficaz nesta coleção.

Se uma write concern for fornecida nas opções de collection, essa write concern será retornada, caso contrário, a write concern efetiva do banco de dados será retornada.

Exemplos:

Obtenha a preocupação de gravação.

collection.write_concern

Retorna:

Desde:

  • 2.0.0



237
238
239
240
# Arquivo 'lib/mongo/collection.rb', linha 237

def write_concern
  @write_concern ||= Escreva preocupação.obter(
    opções[:write_concern] || opções[:write] || database.write_concern)
end

#write_concern_with_session(session) ➤ Mongo::WriteConcern

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha a preocupação de gravação a ser usada para uma operação nessa coleção, dada uma sessão.

Se a sessão estiver em uma transação e a collection tiver uma write concern não reconhecida, remova a opção :w da write concern. Caso contrário, retorne a write concern inalterada.

Retorna:

Desde:

  • 2.0.0



253
254
255
256
257
258
259
260
261
262
263
# Arquivo 'lib/mongo/collection.rb', linha 253

def write_concern_with_session(session)
  wc = write_concern
  se session && session.in_transaction?
    se wc && !wc.reconhecido?
      opciona = wc.opções.dup
      opciona.excluir(:w)
      Método Escreva preocupação.obter(opciona)
    end
  end
  wc
end