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'.congelar
- NS =
A constante do campo ns.
'ns'.congelar
- CHANGEABLE_OPTIONS =
Opções que podem ser atualizadas em uma nova instância de Collection por meio do método #with.
[ :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.
{ :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
-
#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 (only works on 3.6+) * $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
A partir da versão 3.6 do servidor MongoDB, um estágio de pipeline "$changeStream" é suportado no framework de aggregation.
-
#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, #write_worker
Detalhes do construtor
#initialize(banco de dados, name, options = {}) ➤ Collection
Instanciar uma nova collection.
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, = {}) 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) =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
#database ➤ Mongo::Database (readonly)
Retorna o banco de dados de dados em que a collection reside.
46 47 48 |
# Arquivo 'lib/mongo/collection.rb', linha 46 def database @database end |
#name ➤ string (somente leitura)
Retorna O nome da coleção.
49 50 51 |
# Arquivo 'lib/mongo/collection.rb', linha 49 def name @name end |
#opções ➤ Hash (somente leitura)
Retorna as opções de collection.
52 53 54 |
# Arquivo 'lib/mongo/collection.rb', linha 52 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 |
# 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.
568 569 570 |
# Arquivo 'lib/mongo/collection.rb', linha 568 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.
942 943 944 |
# Arquivo 'lib/mongo/collection.rb', linha 942 def bulk_write(pedidos, = {}) Gravação em massa.Novo(auto, pedidos, ).executar, executar end |
#limitado? ➤ verdadeiro | false
A collection é limitada?
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
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.
685 686 687 |
# Arquivo 'lib/mongo/collection.rb', linha 685 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.
719 720 721 |
# Arquivo 'lib/mongo/collection.rb', linha 719 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.
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. = Hash[auto..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 .chave?(ruby_key) [server_key] = .excluir(ruby_key) end end operação = { :create => 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 ) 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: [:collation] || ['agrupamento'], encryption_fields: campos_criptografados, validator: [:validator], ).executar, executar( próximo_primary(nada, session), contexto: Contexto ) end end end |
#delete_many(filter = nil, options = {}) ➤ Resultado
Remover documentos da coleção.
994 995 996 |
# Arquivo 'lib/mongo/collection.rb', linha 994 def delete_many(filtro, filtro = nada, = {}) find(filtro, filtro, ).delete_many() end |
#delete_one(filter = nil, options = {}) ➤ Resultado
Remover um documento da coleção.
968 969 970 |
# Arquivo 'lib/mongo/collection.rb', linha 968 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 .
771 772 773 |
# Arquivo 'lib/mongo/collection.rb', linha 771 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.
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.
744 745 746 |
# Arquivo 'lib/mongo/collection.rb', linha 744 def estimated_document_count( = {}) Vista.Novo(auto, {}, ).estimated_document_count() end |
#encontrar(filter = nil, opções = {}) ➤ CollectionView
Encontre documentos na coleção.
532 533 534 |
# Arquivo 'lib/mongo/collection.rb', linha 532 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.
1157 1158 1159 |
# Arquivo 'lib/mongo/collection.rb', linha 1157 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.
1243 1244 1245 |
# Arquivo 'lib/mongo/collection.rb', linha 1243 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.
1201 1202 1203 |
# Arquivo 'lib/mongo/collection.rb', linha 1201 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.
788 789 790 |
# Arquivo 'lib/mongo/collection.rb', linha 788 def Índices( = {}) Index::Vista.Novo(auto, ) end |
#insert_many(documents, options = {}) ⇒ Result
Insira os documentos fornecidos na coleção.
910 911 912 913 914 915 |
# Arquivo 'lib/mongo/collection.rb', linha 910 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.
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.[:id_generator], :session => session, :txn_num => txn_num, :comentário => opciona[:comentário] ).execute_with_connection(Conexão, contexto: Contexto) end end end |
#inspecionar ➤ string
Obtenha uma inspeção de string bem impressa para a coleção.
822 823 824 |
# Arquivo 'lib/mongo/collection.rb', linha 822 def inspecionar "#<Mongo::Collection:0x#{object_id} namespace=#{namespace}>" end |
#namespace ➤ string
Obtenha o namespace totalmente qualificado da coleção.
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).
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.
1025 1026 1027 |
# Arquivo 'lib/mongo/collection.rb', linha 1025 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 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.
193 194 195 |
# Arquivo 'lib/mongo/collection.rb', linha 193 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 coleta, essa preferência de leitura será retornada, caso contrário, a preferência de leitura efetiva do banco de dados será retornada.
221 222 223 |
# Arquivo 'lib/mongo/collection.rb', linha 221 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.
1056 1057 1058 |
# Arquivo 'lib/mongo/collection.rb', linha 1056 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.
810 811 812 |
# Arquivo 'lib/mongo/collection.rb', linha 810 def search_indexes( = {}) Índice de pesquisa::Vista.Novo(auto, ) end |
#server_selector ➤ Mongo::ServerSelector
Obtenha o seletor de servidor para esta collection.
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.
1264 1265 1266 |
# Arquivo 'lib/mongo/collection.rb', linha 1264 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.
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.
1089 1090 1091 |
# Arquivo 'lib/mongo/collection.rb', linha 1089 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.
1122 1123 1124 |
# Arquivo 'lib/mongo/collection.rb', linha 1122 def update_one(filtro, filtro, update, = {}) find(filtro, filtro, ).update_one(update, ) end |
#watch(pipeline = [], options = {}) ➤ ChangeStream
Um change stream permite apenas a preocupação de leitura 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.
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.
646 647 648 649 650 |
# Arquivo 'lib/mongo/collection.rb', linha 646 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 308 309 310 311 |
# 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 se [:write] && [:write_concern] .excluir(:write) end se [:write_concern] && [:write] .excluir(:write_concern) end 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 collection, essa write concern será retornada, caso contrário, a write concern efetiva do banco de dados será retornada.
237 238 239 240 |
# Arquivo 'lib/mongo/collection.rb', linha 237 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 collection tiver uma write concern não reconhecida, remova a opção :w da write concern. Caso contrário, retorne a write concern inalterada.
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..dup opciona.excluir(:w) Método Escreva preocupação.obter(opciona) end end wc end |