Classe: Mongo::Collection
- Herda:
-
Objeto
- Objeto
- Mongo::collection
- 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.
Definido sob namespace
Módulos: Auxiliares, Classes de QueryableEncryption : visualização
Colapsode resumo constante
- CApped =
A opção limitada.
'capped'- NS =
A constante do campo ns.
'ns'- CHANGEABLE_OPTIONS =
Opções que podem ser atualizadas em uma nova instância de Collection por meio do método #with.
%i[ler read_concern escrever 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.
{ time_series: :timeseries, expire_after: :expireAfterSeconds, clustered_index: :clusteredIndex, change_stream_pre_and_post_images: :changeStreamPreAndPostImages, encryption_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
-
#database ➤ Mongo::Database
Somente leitura
O banco de dados de dados no qual a collection reside.
-
#name ➤ string
Somente leitura
O nome da collection.
-
#opções ➤ Hash
Somente leitura
As opções de collection.
Recolhimento do Resumo do método de instância
-
#==(outro) ➤ verdadeiro | false
Verifique se uma coleção é igual a outro objeto.
-
#agregado(pipeline, opções = {}) ➤ Visualizar::Aggregation
Realizar uma agregação na collection.
-
#bulk_write(requests, options = {}) ➤ BulkWrite::Result
Execute um lote de operações de gravação em massa.
-
#limitado? ➤ verdadeiro | false
A coleção é limitada?
-
#count(filter = nil, options = {}) ⇒ Inteiro
obsoleto
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 * $near should be replaced with $geoWithin with $center * $nearSphere should be replaced with $geoWithin with $centerSphere -
#count_documents(filter = {}, options = {}) ➤ inteiro
Obtém o número de documentos correspondentes à query.
-
#create(opts = {}) ➤ Resultado
Forçar a criação da collection no banco de banco de dados.
-
#delete_many(filter = nil, options = {}) ➤ Resultado
Remover documentos da coleção.
-
#delete_one(filter = nil, options = {}) ➤ Resultado
Remover um documento da coleção.
-
#distinct(field_name, filter = nil, options = {}) ➤ Array<Object>
Obtenha uma lista de valores distintos para um campo específico .
-
#drop(opts = {}) ➤ Resultado
Solte a coleção.
-
No.
Obtém uma estimativa do número de documentos na collection usando os metadados da collection.
-
#encontrar(filter = nil, opções = {}) ➤ CollectionView
Encontre documentos na coleção.
-
#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.
-
#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.
-
#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.
-
#indexes(options = {}) ⇒ Index::View
Tenha uma visão de todos os índices dessa collection.
-
#initialize(banco de dados, name, options = {}) ➤ Collection
construtor
Instanciar uma nova collection.
-
#insert_many(documents, options = {}) ⇒ Result
Insira os documentos fornecidos na coleção.
-
#insert_one(documento, opts = {}) ➤ Resultado
Insira um único documento na coleção.
-
#inspecionar ➤ string
Obtenha uma inspeção de string bem impressa para a coleção.
-
#namespace ➤ string
Obtenha o namespace totalmente qualificado da coleção.
-
#operation_timeouts(opts = {}) ➤ Hash
privado
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).
-
#parallel_scan(cursor_count, options = {}) ➤ Array<Cursor>
Execute uma verificação paralela na visualização da collection.
-
#read_concern ➤ Hash
Obtenha a preocupação de leitura efetiva para esta instância de coleção.
-
#read_preference ➤ Hash
Obtenha a preferência de leitura efetiva para esta coleção.
-
#replace_one(filtro, substituição, opções = {}) ➤ Resultado
Substitui um único documento na coleção pelo novo documento.
-
#search_indexes(options = {}) ➤ SearchIndex::View
Tenha uma visão de todos os índices de pesquisa dessa collection.
-
#server_selector ➤ Mongo::ServerSelector
Obtenha o seletor de servidor para esta collection.
-
#system_collection? ➤ Booleano
privado
Se a collection é uma collection de sistema.
-
#timeout_ms ⇒ Integer | nil
privado
Tempo limite de operação para esse banco de dados ou para o cliente correspondente .
-
#update_many(filter, update, options = {}) ⇒ Result
Atualizar documentos na coleção.
-
#update_one(filter, update, options = {}) ⇒ Result
Atualizar um único documento na coleção.
-
#watch(pipeline = [], options = {}) ➤ ChangeStream
Permite que os usuários solicitem o envio de notificações para todas as alterações em uma coleção específica.
-
#com(new_options) ➤ Mongo::Collection
Uma nova instância de coleção.
-
#write_concern ➤ Mongo::WriteConcern
Obtenha a preocupação de escrita eficaz nesta coleção.
-
#write_concern_with_session(session) ➤ Mongo::WriteConcern
privado
Obtenha a preocupação de gravação a ser usada para uma operação nessa coleção, dada uma sessão.
Métodos incluídos de auxiliares
Métodos incluídos do QueryableEncryption
# maybe_create_qe_collections, # maybe_drop_emm_collections
Métodos incluídos no Retryable
#read_worker, #select_server, #with_overload_retry, #write_worker
Detalhes do construtor
#initialize(banco de dados, name, options = {}) ➤ Collection
Instanciar uma nova collection.
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# Arquivo 'lib/mongo/collection.rb', linha 163 def inicializar(database, name, = {}) aumentar Erro::InvalidCollectionName.Novo a menos que name se [:write] && [:write_concern] && [:write] != [:write_concern] aumentar ArgumentError, "Se :write e :write_concern forem fornecidos, eles devem ser idênticos: #{.inspect}" end @database = database @name = name.to_s.congelar @opções = .dup @timeout_ms = .excluir(:timeout_ms) # Suporte ao objeto WriteConcern # if @options[:write_concern].is_a?(WriteConcern::Base) # # Cache a instância para que não a reconstruímos desnecessariamente. # @write_concern = @options[:write_concern] # @options[:write_concern] = @write_concern.options # end @opções.congelar end |
Detalhes do atributo da instância
#database ➤ Mongo::Database (readonly)
Retorna o banco de dados de dados em que a collection reside.
44 45 46 |
# Arquivo 'lib/mongo/collection.rb', linha 44 def database @database end |
#name ➤ string (somente leitura)
Retorna O nome da coleção.
47 48 49 |
# Arquivo 'lib/mongo/collection.rb', linha 47 def name @name end |
#opções ➤ Hash (somente leitura)
Retorna as opções de collection.
50 51 52 |
# Arquivo 'lib/mongo/collection.rb', linha 50 def @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.
89 90 91 92 93 |
# 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 && == Outro. end |
#agregado(pipeline, opções = {}) ➤ Visualizar::Aggregation
Realizar uma agregação na collection.
567 568 569 |
# Arquivo 'lib/mongo/collection.rb', linha 567 def Agregação(gasoduto, = {}) Vista.Novo(auto, {}, ).Agregação(gasoduto, ) end |
#bulk_write(requests, options = {}) ➤ BulkWrite::Result
Execute um lote de operações de gravação em massa.
939 940 941 |
# Arquivo 'lib/mongo/collection.rb', linha 939 def bulk_write(pedidos, = {}) Gravação em massa.Novo(auto, pedidos, ).executar, executar end |
#limitado? ➤ verdadeiro | false
A collection é limitada?
317 318 319 320 321 |
# Arquivo 'lib/mongo/collection.rb', linha 317 def limitado? database.list_collections(filtro: { nome: name }) .primeiro &.dig('options', CApped) || false end |
#count(filter = nil, options = {}) ⇒ Inteiro
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
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphereObtém um número estimado de documentos correspondentes na collection.
681 682 683 |
# Arquivo 'lib/mongo/collection.rb', linha 681 def contar(filtro, filtro = nada, = {}) Vista.Novo(auto, filtro, filtro || {}, ).contar() 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.
715 716 717 |
# Arquivo 'lib/mongo/collection.rb', linha 715 def count_documents(filtro, filtro = {}, = {}) Vista.Novo(auto, filtro, filtro, ).count_documents() end |
#create(opts = {}) ➤ Resultado
Forçar a criação da collection no banco de banco de dados.
378 379 380 381 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 |
# Arquivo 'lib/mongo/collection.rb', linha 378 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. = Hash[auto..mesclar(opciona).rejeitar fazer |chave, _value| %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| [server_key] = .excluir(ruby_key) se .chave?(ruby_key) end operação = { criar: name }.mesclar() 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 ) operação = (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: [:collation] || ['agrupamento'], validator: [:validator] ) rastreador.rastreamento_operação(operação, Contexto, op_name: 'createCollection') fazer talvez_create_qe_collections(opciona[:encrypted_fields], Cliente, session) fazer |campos_criptografados| operação.campos_criptografados = campos_criptografados operação.executar, executar( próximo_primary(nada, session), contexto: Contexto ) end end end end |
#delete_many(filter = nil, options = {}) ➤ Resultado
Remover documentos da coleção.
991 992 993 |
# Arquivo 'lib/mongo/collection.rb', linha 991 def delete_many(filtro, filtro = nada, = {}) find(filtro, filtro, ).delete_many() end |
#delete_one(filter = nil, options = {}) ➤ Resultado
Remover um documento da coleção.
965 966 967 |
# Arquivo 'lib/mongo/collection.rb', linha 965 def delete_one(filtro, filtro = nada, = {}) find(filtro, filtro, ).delete_one() end |
#distinct(field_name, filter = nil, options = {}) ➤ Array<Object>
Obtenha uma lista de valores distintos para um campo específico .
767 768 769 |
# Arquivo 'lib/mongo/collection.rb', linha 767 def distinto(field_name, filtro, filtro = nada, = {}) Vista.Novo(auto, filtro, filtro || {}, ).distinto(field_name, ) end |
#drop(opts = {}) ➤ Resultado
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.
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 |
# Arquivo 'lib/mongo/collection.rb', linha 451 def derrubar(opciona = {}) Cliente.with_session(opciona) fazer |session| Contexto = (operação)::Contexto.Novo( cliente: Cliente, sessão: session, operation_timeouts: operation_timeouts(opciona) ) temp_write_concern = write_concern write_concern = se opciona[:write_concern] Escreva preocupação.obter(opciona[:write_concern]) mais temp_write_concern end operação = (operação)::descartar.Novo({ seletor: { derrubar: name }, db_name: database.name, write_concern: write_concern, sessão: session, }) rastreador.rastreamento_operação(operação, Contexto, op_name: 'dropCollection') fazer talvez_drop_emm_coleções(opciona[:encrypted_fields], Cliente, session) fazer do_drop(operação, session, Contexto) end 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.
740 741 742 |
# Arquivo 'lib/mongo/collection.rb', linha 740 def estimated_document_count( = {}) Vista.Novo(auto, {}, ).estimated_document_count() end |
#encontrar(filter = nil, opções = {}) ➤ CollectionView
Encontre documentos na coleção.
531 532 533 |
# Arquivo 'lib/mongo/collection.rb', linha 531 def find(filtro, filtro = nada, = {}) Vista.Novo(auto, filtro, filtro || {}, ) 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.
1164 1165 1166 |
# Arquivo 'lib/mongo/collection.rb', linha 1164 def find_one_and_delete(filtro, filtro, = {}) find(filtro, filtro, ).find_one_and_delete() 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.
1250 1251 1252 |
# Arquivo 'lib/mongo/collection.rb', linha 1250 def find_one_and_replace(filtro, filtro, substituição, = {}) find(filtro, filtro, ).find_one_and_update(substituição, ) 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.
1208 1209 1210 |
# Arquivo 'lib/mongo/collection.rb', linha 1208 def find_one_and_update(filtro, filtro, update, = {}) find(filtro, filtro, ).find_one_and_update(update, ) end |
#indexes(options = {}) ⇒ Index::View
Tenha uma visão de todos os índices dessa collection. Pode ser iterado ou tem mais operações.
784 785 786 |
# Arquivo 'lib/mongo/collection.rb', linha 784 def Índices( = {}) Index::Vista.Novo(auto, ) end |
#insert_many(documents, options = {}) ⇒ Result
Insira os documentos fornecidos na coleção.
907 908 909 910 911 912 |
# Arquivo 'lib/mongo/collection.rb', linha 907 def insert_many(documentos, = {}) Cache de consulta.clear_namespace(namespace) Inserções = documentos.map { |doc| { insert_one: doc } } bulk_write(Inserções, ) end |
#insert_one(documento, opts = {}) ➤ Resultado
Insira um único documento na coleção.
845 846 847 848 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 |
# Arquivo 'lib/mongo/collection.rb', linha 845 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 aumentar ArgumentError, 'O documento a ser inserido não pode ser nulo' se documento.nada? Contexto = (operação)::Contexto.Novo( cliente: Cliente, sessão: session, operation_timeouts: operation_timeouts(opciona) ) operação = (operação)::Insert.Novo( Documentos: [ 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.[:id_generator], sessão: session, comment: opciona[:comentário] ) rastreador.rastreamento_operação(operação, Contexto) fazer write_with_retry(write_concern, contexto: Contexto) fazer |Conexão, txn_num, Contexto| operação.txn_num = txn_num operação.execute_with_connection(Conexão, contexto: Contexto) end end end end |
#inspecionar ➤ string
Obtenha uma inspeção de string bem impressa para a coleção.
818 819 820 |
# Arquivo 'lib/mongo/collection.rb', linha 818 def inspecionar "#<Mongo::Collection:0x#{object_id} namespace=#{namespace}>" end |
#namespace ➤ string
Obtenha o namespace totalmente qualificado da coleção.
1262 1263 1264 |
# Arquivo 'lib/mongo/collection.rb', linha 1262 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).
1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 |
# Arquivo 'lib/mongo/collection.rb', linha 1287 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.
1022 1023 1024 |
# Arquivo 'lib/mongo/collection.rb', linha 1022 def parallel_scan(cursor_count, = {}) find({}, ).parallel_scan(cursor_count, ) end |
#read_concern ➤ Hash
Obtenha a preocupação de leitura efetiva para esta instância de coleção.
Se um read concern for fornecido nas opções de coleção, esse read concern será retornado, caso contrário, o read concern efetivo do banco de dados será retornado.
194 195 196 |
# Arquivo 'lib/mongo/collection.rb', linha 194 def read_concern [: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 coleção, essa preferência de leitura será retornada, caso contrário, a preferência de leitura efetiva do banco de dados será retornada.
222 223 224 |
# Arquivo 'lib/mongo/collection.rb', linha 222 def read_preference @read_preference ||= [:read] || database.read_preference end |
#replace_one(filtro, substituição, opções = {}) ➤ Resultado
Substitui um único documento na coleção pelo novo documento.
1058 1059 1060 |
# Arquivo 'lib/mongo/collection.rb', linha 1058 def replace_one(filtro, filtro, substituição, = {}) find(filtro, filtro, ).replace_one(substituição, ) end |
#search_indexes(options = {}) ➤ SearchIndex::View
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.
806 807 808 |
# Arquivo 'lib/mongo/collection.rb', linha 806 def search_indexes( = {}) Índice de pesquisa::Vista.Novo(auto, ) end |
#server_selector ➤ Mongo::ServerSelector
Obtenha o seletor de servidor para esta collection.
206 207 208 |
# Arquivo 'lib/mongo/collection.rb', linha 206 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.
1271 1272 1273 |
# Arquivo 'lib/mongo/collection.rb', linha 1271 def system_collection? name.start_with?('.') end |
#timeout_ms ⇒ Integer | 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.
1279 1280 1281 |
# Arquivo 'lib/mongo/collection.rb', linha 1279 def timeout_ms @timeout_ms || database.timeout_ms end |
#update_many(filter, update, options = {}) ⇒ Result
Atualizar documentos na coleção.
1091 1092 1093 |
# Arquivo 'lib/mongo/collection.rb', linha 1091 def update_many(filtro, filtro, update, = {}) find(filtro, filtro, ).update_many(update, ) end |
#update_one(filter, update, options = {}) ⇒ Result
Atualizar um único documento na coleção.
1129 1130 1131 |
# Arquivo 'lib/mongo/collection.rb', linha 1129 def update_one(filtro, filtro, update, = {}) find(filtro, filtro, ).update_one(update, ) end |
#watch(pipeline = [], options = {}) ➤ ChangeStream
Um fluxo de alterações permite apenas a read concern de "maioria".
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.
Permite que os usuários solicitem o envio de notificações para todas as alterações em uma coleção específica.
642 643 644 645 646 |
# Arquivo 'lib/mongo/collection.rb', linha 642 def assistir(gasoduto = [], = {}) = .dup [:cursor_type] = :tailable_await se [:max_await_time_ms] Vista::Change stream.Novo(Vista.Novo(auto, {}, ), gasoduto, nada, ) end |
#com(new_options) ➤ Mongo::Collection
Retorna Uma nova instância de coleção.
299 300 301 302 303 304 305 306 307 |
# Arquivo 'lib/mongo/collection.rb', linha 299 def com() .keys.cada fazer |k| aumentar Erro::UnchangeableCollectionOption.Novo(k) a menos que CHANGEABLE_OPTIONS.incluir?(k) end = @opções.dup .excluir(:write) se [:write] && [:write_concern] .excluir(:write_concern) se [:write_concern] && [:write] collection.Novo(database, name, .update()) 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 coleção, essa write concern será retornada; caso contrário, a write concern efetiva do banco de dados será retornada.
238 239 240 241 242 |
# Arquivo 'lib/mongo/collection.rb', linha 238 def write_concern @write_concern ||= Escreva preocupação.obter( [:write_concern] || [: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 coleção tiver um preocupação de gravação não reconhecido, remova a opção :w do write concern. Caso contrário, retorne a write concern não modificada.
255 256 257 258 259 260 261 262 263 |
# Arquivo 'lib/mongo/collection.rb', linha 255 def write_concern_with_session(session) wc = write_concern se session && session.in_transaction? && wc && !wc.reconhecido? opciona = wc..dup opciona.excluir(:w) Método Escreva preocupação.obter(opciona) end wc end |