Menu Docs
Página inicial do Docs
/ /

Notas de versão

Descubra as novidades de cada versão:

  • Versão 3.5

  • Versão 3.4

  • Versão 3.3

  • Versão 3.2

  • Versão 3.1

  • Versão 3.0

  • Versão 2.30

  • Versão 2.29

  • Versão 2.28

  • Versão 2.27

  • Versão 2.26

  • Versão 2.25

Aviso

Alterações significativas na v3.5

MongoDB .NET/C# Driver 3.5 contém alterações significativas. Consulte Versão 3.5 Alterações significativas para obter mais informações.

A versão do driver 3.5 inclui os seguintes novos recursos, melhorias e correções:

  • Adiciona suporte experimental para queries de prefixo, sufixo e substring de Queryable Encryption . Esses recursos são instáveis e sua segurança não é garantida até que estejam geralmente disponíveis (GA). Use-os apenas em cargas de trabalho experimentais. Para saber mais sobre a QE, consulte criptografia em execução.

  • Adiciona a classe CsfleSchemaBuilder ao pacote MongoDB.Driver.Encryption. Você pode usar esta classe para criar JSON schemas para criptografia em nível de campo do lado do cliente (CSFLE), como mostrado no exemplo a seguir :

    var builder = CsfleSchemaBuilder.Create(schemaBuilder =>
    {
    schemaBuilder.Encrypt<Patient>(_collectionNamespace, builder =>
    {
    builder
    .EncryptMetadata(keyId: _keyId)
    .Property(p => p.MedicalRecords, BsonType.Array,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Random)
    .Property("bloodType", BsonType.String,
    algorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Random)
    .Property(p => p.Ssn, BsonType.Int32,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic)
    .Property(p => p.Insurance, innerBuilder =>
    {
    innerBuilder
    .Property(i => i.PolicyNumber, BsonType.Int32,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic);
    })
    .PatternProperty("_PIIString$", BsonType.String, EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic)
    .PatternProperty("_PIIArray$", BsonType.Array, EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Random)
    .PatternProperty(p => p.Insurance, innerBuilder =>
    {
    innerBuilder
    .PatternProperty("_PIIString$", BsonType.String,
    EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic)
    .PatternProperty("_PIINumber$", BsonType.Int32,
    algorithm: EncryptionAlgorithm.AEAD_AES_256_CBC_HMAC_SHA_512_Deterministic);
    });
    });
    });
    var schema = builder.Build();

    Para saber mais sobre o CSFLE, consulte criptografia em execução.

  • Adiciona os seguintes métodos LINQ:

    • Median(): calcula a mediana de uma sequência de valores.

    • Percentile(): Calcula múltiplo percentil de uma sequência de valores.

    Você pode usar esses métodos para executar cálculos como parte dos estágios de agregação $group e $setWindowFields.

  • Adiciona novas sobrecargas de método Ascending() e Descending() à classe SortDefinitionBuilder. Você pode usar esses métodos para classificar elementos por valor ao usar o operador de atualização $sort.

  • Adiciona suporte para utilizar um proxy SOCKS5 para conectar ao MongoDB. Você pode especificar as configurações de conexão SOCKS5 na string de conexão ou usando a propriedade ProxySettings do MongoClientSettings.Socks5.

  • Adiciona suporte para a interface IAsyncEnumerable<T> em cursores e LINQ. Você pode usar a sintaxe await foreach para iterar de forma assíncrona sobre os resultados da consulta.

  • Adiciona suporte big-endian às classes BinaryVectorReader e BinaryVectorWriter.

  • Altera os subsistemas internos na preparação para o suporte ao tempo limite de operações do lado do cliente (CSOT) em uma versão futura. Esperemos que estas alterações sejam compatíveis com versões anteriores e não afetem o comportamento do condutor existente. Entre em contato com o MongoDB se tiver algum dos seguintes problemas:

    • As operações atingem o tempo limite inesperadamente ou não atingem o tempo limite quando esperado

    • Atrasos incomuns ou travamentos em chamadas de banco de dados

    • Diferenças de comportamento ao cancelar comandos

    Para ver as melhores maneiras de encontrar suporte, consulte a página Problemas e ajuda. Forneça registros do driver e uma reprodução, se possível.

Para obter mais informações sobre esta versão, consulte as notas de versão v3.5 no Github.

A versão do driver 3.4 inclui os seguintes novos recursos, melhorias e correções:

  • Adiciona o método LINQ do Mql.Convert() para converter entre tipos ao executar agregações. Para saber mais, consulte a seção $convert do guia LINQ.

  • Adiciona suporte para o método LINQ do KeyValuePair.Create().

  • Adiciona o método construtor de agregação do GeoNear() para construir um estágio de agregação do $geoNear. Para visualizar exemplos, consulte a referência $geoNear no manual do MongoDB Server.

  • Suporta a conversão de uma interface para um tipo que implementa essa interface em queries LINQ.

  • Suporta o construtor Dictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection) em LINQ.

  • Adiciona as seguintes opções para queries do MongoDB Search:

    • MatchCriteria em SearchTextOptions para definir critérios de correspondência para os termos passados para o método do operador Text().

    • Synonyms em SearchPhraseOptions para definir o nome da definição de mapeamento de sinônimos ao usar o método do operador Phrase().

    Para saber mais sobre como realizar queries no MongoDB Search, consulte o guia do MongoDB Search.

  • Suporta queries LINQ após lançar IQueryable<Derived> objetos para IQueryable<Base>.

  • Corrige o comportamento do operador MongoDB Search para usar serializadores configurados em vez de serializadores predefinidos. Para usar o comportamento anterior, defina a seguinte opção:

    SearchDefinition.UseConfiguredSerializers(false);

Para obter mais informações sobre esta versão, consulte as notas de versão v3.4 no Github.

A versão do driver 3.3 inclui as seguintes novas funcionalidades:

  • Adiciona um novo campo NamespaceType que indica o tipo do objeto criado para eventos create na classe ChangeStreamDocument. Para saber mais sobre change streams, consulte o guia Monitorar alterações de dados.

  • Adiciona os seguintes recursos de criptografia em execução :

    • Suporte para o estágio de agregação $lookup

    • Uma propriedade ClientEncryptionOptions que configura a vida útil do cache da chave de criptografia de dados

    Para saber mais sobre a criptografia em execução, consulte o guia criptografia em execução.

  • Adiciona as seguintes funcionalidades do LINQ:

    • Suporte para os métodos de agregação LINQ SkipWhile() e TakeWhile(). Para saber mais, consulte as seções Ignorar uma condição e Limitar uma condição do guia LINQ.

    • Suporte para a expressão $sigmoid em queries LINQ.

    • Suporte para o uso da sintaxe LINQ para acessar qualquer chave de dicionário serializada como uma cadeia de caracteres, independentemente do tipo de dados subjacente.

  • Adiciona suporte para o estágio de agregação $rankFusion, que permite a pontuação de resultados baseada em classificação em resultados combinados de vários pipelines.

  • Adiciona suporte para queries $elemMatch diretamente em relação aos valores, fornecendo uma sobrecarga do método ElemMatch() que utiliza apenas um parâmetro de filtro. Para saber mais, consulte Atualizar matrizes em um documento e Atualizar matrizes em muitos documentos.

  • Adiciona suporte para utilizar o método OfType<T>() e operador is para verificar o tipo de um discriminador escalar.

Para obter mais informações sobre esta versão, consulte as notas de versão v3.3 no Github.

A versão do driver 3.2 inclui as seguintes novas funcionalidades:

  • Adiciona uma nova convenção do ObjectSerializerAllowedTypesConvention que permite a você especificar quais tipos podem ser serializados e desserializados pelo serializador de objeto . Para saber mais sobre convenções, consulte o guia de Convenções.

  • Adiciona um novo construtor para a classe EnumRepresentationConvention que permite usar o parâmetro topLevelOnly para especificar se a convenção se aplica somente a propriedades enumeração ou a todas as propriedades que incluem coleções de enums.

    Você pode instanciar a classe EnumRepresentationConvention utilizando o novo construtor como mostrado no seguinte exemplo:

    EnumRepresentationConvention(BsonType representation, bool topLevelOnly);
  • Otimiza as projeções no lado do cliente para recuperar somente os campos necessários do servidor, em vez de recuperar todos os campos e filtrá-los.

  • Adiciona as seguintes classes para suportar representações de vetores binários na Vector Search do MongoDB :

    • BinaryVectorFloat32

    • BinaryVectorInt8

    • BinaryVectorPackedBit

    Para saber mais sobre a Vector Search do MongoDB com o driver .NET /C#, consulte o guia Executar uma query de Vector Search do MongoDB .

  • Adiciona a propriedade DocumentFormat ao DateOnlySerializer. Esta propriedade permite a você personalizar a maneira como o driver serializa os valores do DateOnly. Esta versão também adiciona o atributo [BsonDateOnlyOptions()] para personalizar o comportamento de serialização para valores DateOnly no nível da propriedade . Para saber mais, consulte a seção Custom DateOnly Serialization do guia POCOs.

Para obter mais informações sobre esta versão, consulte as notas de versão v3.2 no Github.

A versão do driver 3.1 inclui as seguintes novas funcionalidades:

  • Adiciona novos serializadores padrão para coleções imutáveis no namespace System.Collections.Immutable. O driver agora pode serializar objetos ImmutableArray e a serialização para outras collections imutáveis é mais eficiente em termos de memória.

  • Adiciona o SearchIndexType tipo para suportar a criação de índices do MongoDB Vector Search programaticamente. Para saber mais, consulte o guia de índices do MongoDB Search e do MongoDB Vector Search .

  • Adiciona suporte para o tipo de campo de token e expressões de campo de array com construtores de Pesquisa MongoDB para o equals operador. Para saber mais sobre como usar o MongoDB Search com o driver .NET/C#, consulte MongoDB Search.

  • Adiciona suporte para as seguintes queries do MongoDB Search:

    • Usando o método do operador Equals() em valores null e Guid

    • Usando o método do operador In() em valores Guid

    Para saber mais sobre esses métodos, consulte a seção Operadores e coletores de pesquisa do MongoDB do guia de pesquisa do MongoDB .

  • Adiciona suporte para paginação sequencial na Pesquisa MongoDB .

  • Adiciona suporte para nomes de host SRV válidos com menos de 3 partes.

  • Adiciona suporte para os métodos Exists, IsMissing e IsNullOrMissing em filtros de MongoDB Query API .

  • Adiciona suporte para a pesquisa vetorial do vizinho exato (ENN). Para saber mais sobre a Vector Search ENN, consulte Executar queries de Vector Search na documentação do MongoDB Search.

  • Adiciona uma opção de classificação para atualização e substituição de operações. Essa alteração permite que você defina uma ordem de classificação se vários documentos corresponderem ao seu filtro ao tentar atualizar ou substituir um único documento. Para saber mais, consulte os guias Atualizar um e Atualizar muitos.

Para obter mais informações sobre esta versão, consulte as notas de versão v3.1.

Aviso

Alterações significativas na v3.0

O driver v3.0 contém alterações significativas. 3.0 Consulte as Alterações significativas na versão para obter mais informações.

A versão do driver 3.0 inclui as seguintes novas funcionalidades:

  • Adiciona a opção de conexão MongoClientSettings.TranslationOptions, que especifica opções para traduzir queries LINQ para a API de query. Consulte Especificar opções de conexão para obter mais informações.

  • Adiciona suporte para o tipo Half, que representa um número de ponto flutuante de meia precisão. Este tipo está disponível no .NET 5 e posterior. Para saber mais sobre o tipo Half, consulte a página de referência da API Meia Estrutura no MSDN.

  • A interface IMongoClient herda a interface IDisposable. Como resultado, a classe MongoClient e outras classes que implementam a interface IMongoClient contêm uma opção Disp- Adds support for the ``sort a ser passada para atualizar os comandos.ose()'' método , que descarta o cliente. Este método não descarta o cluster subjacente e conexões com o servidor MongoDB . Para descartar o cluster e as conexões, chame o método ClusterRegistry.UnregisterAndDisposeCluster(). A implementação da interface IDisposable é experimental.

    Para saber mais sobre a interface IDisposable e o uso do método Dispose(), consulte Padrão de descarte no MSDN.

  • Adiciona suporte para o tipo DateOnly, que representa um valor de data sem nenhum componente de tempo. Este tipo está disponível no .NET 6 e posterior. Para saber mais sobre o tipo DateOnly, consulte a estrutura DateOnly. Página de referência da API no MSDN.

  • Adiciona suporte para o tipo TimeOnly, que representa um valor de tempo sem componente de data. Este tipo está disponível no .NET 6 e posterior. Para saber mais sobre o tipo TimeOnly, consulte a estrutura TimeOnly. Página de referência da API no MSDN.

  • Adiciona suporte para projeção implícita no lado do cliente ao usar o método Find(), o método Select() ou o estágio de agregação Project() com o provedor LINQ3. Nas versões anteriores do driver, você podia executar a projeção do lado do cliente com o provedor LINQ3 somente depois de chamar o método ToEnumerable() ou AsEnumerable().

    Para saber como habilitar e usar a projeção do lado do cliente para um método de driver, selecione a guia correspondente:

    // Enable client-side projection
    var findOptions = new FindOptions();
    findOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var find = collection
    .Find(doc => doc.Id == 1, findOptions);
    .Project(doc => new { R = MyFunction(doc.Name) });
    // Enable client-side projection
    var aggregateOptions = new AggregateOptions();
    aggregateOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var queryable = collection
    .AsQueryable(aggregateOptions)
    .Where(doc => doc.Id == 1)
    .Select(doc => new { R = MyFunction(doc.Name) });
    // Enable client-side projection
    var aggregateOptions = new AggregateOptions();
    aggregateOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var aggregate = collection
    .Aggregate(aggregateOptions)
    .Project(doc => new { R = MyFunction(doc.Name) });

    Dica

    Configurações do Mongo Client

    Para habilitar a projeção no lado do cliente para todas as queries em um cliente, defina a propriedade TranslationOptions do seu objeto MongoClientSettings, conforme mostrado no exemplo a seguir:

    clientSettings.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };

    Para saber mais sobre como usar o pipeline de agregação com o driver .NET/C#, consulte Operações de agregação.

  • Adiciona uma API MongoClient para operações de escrita em massa. Para saber mais sobre operações de escrita em massa, consulte Operações de escrita em massa.

Para obter mais informações sobre esta versão, consulte as notas de versão v3.0.

O driver 2.30 não introduz novos recursos ou correções de bugs. Seu objetivo é facilitar a migração para a v3.x do driver .NET/C# marcando as APIs públicas que foram removidas na v3.0 como obsoletas.

A versão do driver 2.29 adiciona suporte para a versão 8.0 do MongoDB Server e inclui as seguintes novas funcionalidades:

  • Adiciona suporte para v2 do protocolo de faixa Queryable Encryption .

  • Adiciona suporte para índices de intervalo para Queryable Encryption. Para obter mais informações sobre Queryable Encryption, consulte Queryable Encryption no manual do MongoDB Server .

Para obter mais informações sobre esta versão, consulte as notas de versão v2.29.

Aviso

Possível alteração significativa na v2.28

  • Todos os componentes do driver .NET/C# têm um nome forte. Se o seu aplicação tiver dependências que referenciam várias versões do driver .NET/C#, você deverá criar redirecionamentos de associação para gerenciar essas dependências. Para obter mais informações, consulte Versão 2.28.0 Alterações significativas.

A versão do driver 2.28 inclui as seguintes novas funcionalidades:

  • Adiciona suporte para conversões numéricas adicionais envolvendo Nullable<T>.

  • Adiciona suporte para a opção delegated ao usar KMIP para CSFLE ou Queryable Encryption.

Para obter mais informações sobre esta versão, consulte as notas de versão v2.28.

A versão do driver 2.27 inclui as seguintes novas funcionalidades:

  • Adiciona suporte para o operador de agregação $sample .

  • Implementa o método Equals() para serializadores no LINQ3.

  • Garante que as preocupações de leitura e gravação não sejam aplicadas aos comandos do Auxiliar de Índice de Pesquisa MongoDB para evitar erros.

  • Não permite o uso do caractere vírgula em authMechanismProperties valores de string de conexão ao usar o mecanismo de autenticação MONGODB-OIDC .

  • Corrige um bug de tradução que causava um erro durante a serialização envolvendo números de tamanhos diferentes.

  • Adiciona suporte para distribuições Linux que utilizam a biblioteca do libdl.so.2 .

Para obter mais informações sobre esta versão, consulte as notas de versão v2.27.

A versão do driver 2.26 inclui as seguintes novas funcionalidades:

  • Adicionado suporte para usar o método de agregação SelectMany() dentro dos estágios de agregação Select() e Project() .

  • Adicionado suporte para chamadas Dictionary.ContainsValue() em queries LINQ.

  • Suporte adicionado para concatenação de string de tipos mistos.

  • Uso habilitado do crypto nativo em vinculações do libmongocrypt .

  • Suporte adicionado para serialização de estruturas Memory e ReadOnlyMemory. Para saber mais sobre como implementar esses tipos, consulte a seção Aprimorar o desempenho da serialização da matriz do guia Serialização.

  • Suporte adicionado para o provedor de identidade GCP ao usar o mecanismo de autenticação MONGODB-OIDC . Para saber mais, consulte GCP IMDS no guia de Mecanismos de Autenticação Empresarial.

  • Implementação da assinatura de pacotes NuGet.

  • Implementou novas tentativas de leitura e gravação em outras instâncias mongos quando possível.

A versão do driver 2.25 inclui as seguintes novas funcionalidades:

  • Suporte adicionado para o mecanismo de autenticação do MONGODB-OIDC e aquisição automática de token para o Provedor de Identidade do Azure.

  • Foi adicionado o nome da classe à mensagem de erro relatada quando BsonClassMapSerializer não consegue localizar um criador correspondente.

  • Foi adicionado um campo LoggedStages para exibir o MQL executado após a execução de uma query LINQ.

  • Suporte adicionado para substituir o nome do serviço "mongodb" por um personalizado usando a opção de conexão srvServiceName. Para saber mais, consulte o guia Especificar opções de conexão.

  • Comportamento aprimorado de operações de gravação em massa para evitar enumerar o parâmetro de solicitações mais de uma vez.

Voltar

Referência rápida

Nesta página