Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

.NET/C# Driver Release Notes

Descubra qué hay de nuevo en:

Advertencia

Cambios disruptivos en la versiĂłn v3.10

MongoDB .NET/C# Driver 3.10 contiene cambios disruptivos. Consulta Cambios Disruptivos de la VersiĂłn 3.10 para obtener mĂĄs informaciĂłn.

La versiĂłn del controlador 3.10 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Añade compatibilidad con el mĂ©todo LINQ LeftJoin() para uniones e inclusiones.

  • Agrega los operadores de expresiĂłn $top, $bottom, $topN y $bottomN.

  • Agrega soporte para el $topN y acumuladores similares en $setWindowFields.

  • Agrega los acumuladores de agregaciĂłn $concatArrays y $setUnion.

  • Agrega soporte $setWindowFields para el operador de ventana $minMaxScaler.

  • Agrega compatibilidad con operadores aritmĂ©ticos verificados en la traducciĂłn de LINQ.

  • Agrega soporte de serializaciĂłn para ReadOnlySet.

  • Agrega desarrolladores para el campo doesNotAffect de los operadores de MongoDB Search in, range, equals y compound.

  • Agrega soporte para los operadores de expresiĂłn de agregaciĂłn de prefijo, subcadena y sufijo de Queryable Encryption.

  • Promueve las query de string de prefijo, sufijo y subcadena de Queryable Encryption a disponibilidad general.

  • Permite una sugerencia para guardar sin acuse de recibo que utilizan OP_MSG cuando el servidor lo admite.

  • Permite que los objetos MongoClient instanciados envĂ­en metadatos del cliente on-demand.

  • Utiliza la versiĂłn de cable mĂ­nima admitida para CompatibilityLevel cuando el valor es nulo.

  • Deserializa en una propiedad BsonBinaryData cuando falta el campo correspondiente o null en el documento almacenado, en lugar de generar un error de deserializaciĂłn.

  • Optimiza la eliminaciĂłn de AsyncCursor para consumir menos recurso.

  • Corrige el comportamiento inconsistente de EnsureNoMemberMapConflicts para la convenciĂłn del discriminador.

  • Elimina un nivel de consistencia de lectura duplicado para las operaciones en las sesiones de snapshot.

  • Corrige un problema por el que se ignoraban las configuraciones globales de GuidSerializer para las propiedades de tipo de objeto Realm.

  • Corrige un error que se producĂ­a cuando las query utilizaban Equals con diferentes tipos.

  • Corrige un NullReferenceException lanzado por FilteredMongoCollectionBase.FindOneAndUpdate cuando las opciones son nulas.

  • Corrige un problema por el que al borrar el pool de conexiones con closeInUseConnections aparecĂ­a un ObjectDisposedException sin procesar en lugar de un error de conexiĂłn reintentable.

Para aprender mĂĄs sobre esta versiĂłn, consulta las Notas de la versiĂłn v3.10 en GitHub.

La versiĂłn del controlador 3.9 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Agrega el mĂ©todo Mql.ToHashedIndexKey(), que proporciona un equivalente LINQ para el operador de agregaciĂłn $toHashedIndexKey.

  • Agrega soporte para SearchMeta() facetas sin operador.

  • Permite registrar el mismo proveedor de cifrado varias veces, habilitando una configuraciĂłn de cifrado mĂĄs flexible.

  • Agrega la enumeraciĂłn VectorIndexingMethod y la propiedad IndexingMethod a las clases del modelo de Ă­ndice de bĂșsqueda vectorial. Puedes utilizar VectorIndexingMethod.Flat para configurar la indexaciĂłn de escaneo completo.

  • Agrega soporte para constructor para la etapa de agregaciĂłn $scoreFusion, que combina puntuaciones de mĂșltiples pipelines de entrada.

  • Mejora el rendimiento de las operaciones de GridFS al reemplazar un ciclo de espera activa con una selecciĂłn de servidor a nivel de clĂșster cuando un servidor fijado estĂĄ temporalmente fuera de servicio.

  • Agrega ReadOnlySpan compatibilidad al anĂĄlisis de ObjectId para eliminar las asignaciones temporales de arreglos de bytes.

  • Traduce correctamente las expresiones LINQ que llaman a Parse() en tipos numĂ©ricos como byte, float y long a consultas MongoDB.

  • Traduce correctamente las expresiones LINQ que llaman a string.TrimStart() o string.TrimEnd() en consultas MongoDB.

  • Corrige la resoluciĂłn del serializador para rutas de diccionarios con claves numĂ©ricas en forma de string.

  • Permite configurar la opciĂłn maxIdleTimeMS a 0 para desactivar el lĂ­mite de tiempo de inactividad para las conexiones.

  • Corrige una regresiĂłn en la que el campo filter se renombrĂł incorrectamente a parentFilter en determinadas expresiones previamente admitidas.

  • Corrige el NamedIdMemberConvention para respetar el atributo BsonElement al resolver el nodo de ID.

  • Garantiza que el comando endSessions se ejecute al cerrar ServerSessionPool para liberar adecuadamente las sesiones del servidor.

  • Se corrige un NullReferenceException que ocurrĂ­a al proyectar un arreglo nullable con un Select() condicional en LINQ.

  • Corrige un StackOverflowException en la aplicaciĂłn de convenciones al procesar tipos IEnumerable<T> autorreferenciados.

  • Actualiza la dependencia SharpCompress para abordar una vulnerabilidad de seguridad.

Para aprender mĂĄs sobre esta versiĂłn, consulta las Notas de la versiĂłn v3.9 en GitHub.

La versiĂłn 3.8 del driver incluye las siguientes nuevas funcionalidades, mejoras y correcciones, que requieren el MongoDB Server 8.3 o posterior:

  • Agrega soporte para la gestiĂłn Inteligente de Cargas de Trabajo (IWM) de MongoDB. El driver ahora gestiona con elegancia escenarios de bloqueo de escritura y optimiza el establecimiento de la conexiĂłn durante condiciones de alta carga para mantener la disponibilidad de la aplicaciĂłn.

  • Agrega las siguientes capacidades al mĂ©todo Mql.Convert(), que convierte entre tipos al realizar agregaciones:

    • El mĂ©todo puede convertir cualquier tipo de BSON a un string. El driver asigna esta operaciĂłn al operador de agregaciĂłn $toString, que es equivalente al campo to: "string" del operador $convert.

    • El mĂ©todo tambiĂ©n puede convertir una cadena JSON en un objeto BsonDocument u BsonArray. El controlador asigna estas operaciones a los operadores de agregaciĂłn $toObject o $toArray, que son equivalentes a los campos to: "object" y to: "array" del operador $convert.

    • La clase ConvertOptions incluye una propiedad Base, que puedes utilizar para especificar una base numĂ©rica al convertir entre tipos numĂ©ricos y cadenas.

    Para obtener mĂĄs informaciĂłn, consulta la secciĂłn $convert de la guĂ­a LINQ.

  • Agrega los mĂ©todos LINQ Mql.SerializeEJson() y Mql.DeserializeEJson() para convertir entre valores BSON y sus representaciones Extended JSON (EJSON) v2. Para obtener mĂĄs informaciĂłn, consulta la secciĂłn Operadores de serializaciĂłn EJSON de la guĂ­a de LINQ.

  • Agrega el mĂ©todo Mql.CreateObjectId() para generar un valor ObjectId Ășnico en un pipeline de agregaciĂłn. Para obtener mĂĄs informaciĂłn, consulta $createObjectId.

  • Agrega soporte para sobrecargas de Ă­ndices de los mĂ©todos Select(), SelectMany() y Where() en las consultas LINQ. Para obtener mĂĄs informaciĂłn, consulta MĂ©todos admitidos en la guĂ­a de LINQ.

  • Agrega soporte para sobrecargas de Ă­ndices de los mĂ©todos SkipWhile() y TakeWhile() dentro de las proyecciones Select() en LINQ query. Para obtener mĂĄs informaciĂłn, consulta MĂ©todos admitidos en la guĂ­a LINQ.

  • Añade un mĂ©todo builder Rerank() para la etapa de agregaciĂłn $rerank, que utiliza los modelos de reordenamiento de Voyage IA para organizar los documentos de entrada segĂșn su relevancia. Para obtener mĂĄs informaciĂłn, consulta MĂ©todos de etapas de agregaciĂłn en la guĂ­a Etapas del pipeline de agregaciĂłn.

  • Añade soporte de LINQ para algunas sobrecargas de los mĂ©todos string.Replace(), Regex.Replace(), string.Split() y Regex.Split(). Para obtener mĂĄs informaciĂłn, consulta la secciĂłn String Operadores de la guĂ­a LINQ.

  • Agrega el mĂ©todo LINQ Mql.Subtype() para determinar el subtipo BSON de un campo BinData.

  • Agrega los mĂ©todos LINQ Mql.Hash() y Mql.HexHash() para generar un hash a partir de una string o datos binarios en UTF-8.

Esta versión también incluye las siguientes funcionalidades, que todas las versiones de MongoDB Server admiten:

  • Se agrega el soporte para los operadores de bĂșsqueda HasRoot() y HasAncestor() y el parĂĄmetro returnScope para los mĂ©todos Search() y SearchMeta(). Usa estas funcionalidades para recuperar documentos incrustados como resultados individuales y para filtrar en campos fuera del alcance del documento incrustado. Para obtener mĂĄs informaciĂłn, consulte EmbeddedDocument en la guĂ­a de MongoDB Search.

  • Agrega soporte para el campo storedSource en los modelos de Ă­ndice MongoDB bĂșsqueda vectorial y la opciĂłn returnStoredSource en las etapas de agregaciĂłn $vectorSearch.

  • Agrega los mĂ©todos LINQ Mql.SimilarityDotProduct(), Mql.SimilarityCosine() y Mql.SimilarityEuclidean() para calcular puntuaciones de similitud vectorial en las consultas.

  • Agrega la propiedad Similarity y, los mĂ©todos WithIncludedStoredFields() y WithExcludedStoredFields() a la clase CreateAutoEmbeddingVectorSearchIndexModel para configurar Ă­ndices de incrustaciĂłn automĂĄtica en MongoDB Vector Search.

  • Agrega un cĂłdigo de error numĂ©rico al mensaje de error por defecto generado al crear una excepciĂłn de mĂ©todo nativo.

  • Agrega una verificaciĂłn de validaciĂłn para comprobar que el tipo de valor de un serializador coincida con el tipo registrado al llamar a RegisterSerializer.

  • Soluciona un problema en el que las operaciones de lectura con SingleServerReadBinding podĂ­an agotarse antes de tiempo.

  • Corrige el anĂĄlisis de la cadena de conexiĂłn para validar que el tamaño mĂĄximo del pool de conexiones no sea inferior al tamaño mĂ­nimo del pool.

  • Corrige un problema en el que las actividades de supervisiĂłn de comandos pueden saltarse al usar una conexiĂłn agrupada.

  • Corrige un error por el que SerializerFinder solucionaba el serializador incorrecto para los nodos BsonDocument.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.8 en GitHub.

La versiĂłn del controlador 3.7 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Agrega soporte para el sistema de trazado OpenTelemetry.
  • Agrega soporte para crear una sesiĂłn de snapshot con un valor SnapshotTime especĂ­fico. Para obtener mĂĄs informaciĂłn, consulte ClientSessionOptions.

  • AmplĂ­a el soporte de las funcionalidades de los servidores despriorizados de la selecciĂłn de servidores de clĂșsteres a todos los tipos de topologĂ­a.

  • Actualiza la API de withTransaction para evitar que las transacciones se reintenten con demasiada frecuencia.

  • Admite una nueva sobrecarga de mĂ©todo Enumerable.Reverse() para valores de arreglo introducida por .NET 10.

  • Admite filtros que comparan valores numĂ©ricos anulables o char con valores constantes.

  • Agrega soporte para ConvertChecked expresiones.

  • Reescribe las consultas que utilizan los operadores $elemMatch y $or invirtiendo el orden de los operadores, debido a una limitaciĂłn del servidor.

  • Implementa un nuevo sistema de KnownSerializerFinder que preanaliza las expresiones para crear un mapa de serializadores conocidos para cada nodo de expresiĂłn.

  • Actualiza la ruta del cĂłdigo de conexiĂłn sincrĂłnica para usar ConnectAsync, lo que reduce el riesgo de deadlocks.

  • Convierte las clases de eliminador en structs, lo que reduce las asignaciones de memoria.

  • Optimiza la traducciĂłn de la expresiĂłn de comparaciĂłn para constantes booleanas anulables.

  • Evita la asignaciĂłn de arreglos de bytes al escribir valores Int64 y Double reutilizando el arreglo _temp de ByteBufferStream.

  • Optimiza la clase CommandEventHelper para evitar la decodificaciĂłn redundante de mensajes.

  • Corrige el comportamiento de serializaciĂłn para los enums que tienen ushort tipos subyacentes.

  • Genera un ExpressionNotSupportedException si String.IndexOf() comparaciones a valores negativos.

  • Evita generar un ClusterDescriptionChangedEvent cuando las actualizaciones de DNS no cambian el estado de Descubrimiento y Monitoreo del Servidor.

  • Actualiza las referencias de propiedades intraducibles en las expresiones LINQ para recurrir a la ejecuciĂłn en el lado del cliente.

  • Actualiza IPAddressSerializer para serializar instancias de IPAddress sin generar un error.

  • Corrige un error en el que el optimizador GroupBy generaba rutas de campo incorrectas para los acumuladores First y Last si los datos de origen se habĂ­an envuelto en una operaciĂłn anterior.

  • Corrige los interbloqueos durante la inicializaciĂłn concurrente de BsonClassMap, que se produjeron despuĂ©s de actualizar a .NET/C# Driver 3.5.2.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.7 en GitHub.

La versiĂłn del controlador 3.6 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Agrega la clase CreateVectorSearchIndexModel, una API fuertemente tipada para crear Ă­ndices de MongoDB Vector Search. Para obtener mĂĄs informaciĂłn sobre esta API, consulte Ejecutar una MongoDB Vector Search query.

  • Agrega el modelo de Ă­ndice CreateAutoEmbeddingVectorSearchIndexModel para generar automĂĄticamente incrustaciones de vectores para campos de texto. Para conocer mĂĄs detalles, consulta la guĂ­a de MongoDB Search y de Ă­ndices de Vector Search en MongoDB.

  • Añade un modo de compatibilidad hacia atrĂĄs para el tipo TimeOnly para leer correctamente documentos serializados por versiones del controlador anteriores a la v3.0.

  • Usa rutas estĂĄndar RID en el empaquetado MongoDB.Driver.Encryption.

  • Añade soporte para el mĂ©todo estĂĄtico String.Compare() en consultas LINQ.

  • Añade soporte para usar campos Dictionary como tipos de IEnumerable<KeyValuePair<TKey, TValue>>.

  • Agrega compatibilidad para las propiedades Dictionary Keys y Values en las consultas LINQ.

  • Añade una sobrecarga de constructor Decimal128 para tipos byte y short para dar soporte a la compatibilidad con .NET 10.

  • Agrega soporte para los cambios de C# 14 que hacen que algunas sobrecargas de mĂ©todos se vinculen a mĂ©todos MemoryExtensions en lugar de mĂ©todos Enumerable.

  • Mapea los mĂ©todos MemoryExtensions.Contains() y MemoryExtensions.SequenceEqual() que tienen un comparador nulo a Enumerable mĂ©todos que no tienen un parĂĄmetro comparador.

  • Mejora el rendimiento de la serializaciĂłn y reduce la asignaciĂłn de memoria mediante las siguientes mejoras:

    • Elimina asignaciones de GetBitArray() en BsonClassMapSerializer.DeserializeClass().

    • Usa KeyValuePairSerializer de forma constante para KeyValuePair.

    • Evita el RentedBuffer iminamiento/clasificaciĂłn en la clase DisposableSegment.

    • Evita asignaciones para BsonBinaryReaderContext y BsonBinaryWriterContext.

    • Cambia a un bucle for en BsonClassMapSerializer.SerializeClass() para reducir las asignaciones.

  • Optimiza la traducciĂłn de LINQ para los mĂ©todos First() y FirstOrDefault() con predicados.

  • Resuelve un problema por el cual el controlador .NET/C# dejĂł de funcionar con Unity desde la versiĂłn v3.2.0.

  • Corrige un problema con el filtrado por tipos derivados.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.6 en GitHub.

Advertencia

Cambios disruptivos en la versiĂłn v3.5

MongoDB .NET/C# Driver 3.5 contiene cambios disruptivos. Consulta Cambios Disruptivos de la VersiĂłn 3.5 para obtener mĂĄs informaciĂłn.

La versiĂłn del controlador 3.5 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Agrega soporte experimental para queries de prefijo, sufijo y subcadena en Queryable Encryption. Estas funcionalidades son inestables y su seguridad no estĂĄ garantizada hasta que estĂ©n generalmente disponibles (GA). Usarlas solo en cargas de trabajo experimentales. Para obtener mĂĄs informaciĂłn sobre QE, consulte EncriptaciĂłn en uso.

  • Agrega la clase CsfleSchemaBuilder al paquete MongoDB.Driver.Encryption. Puedes utilizar esta clase para crear esquemas JSON para cifrado a nivel de campo del lado del cliente (CSFLE), como se muestra en el siguiente ejemplo:

    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 obtener mĂĄs informaciĂłn sobre CSFLE, consulte encriptaciĂłn en uso.

  • Agrega los siguientes mĂ©todos LINQ:

    • Median(): Calcula la mediana de una secuencia de valores.

    • Percentile()Calcula mĂșltiples percentiles de una secuencia de valores.

    Puedes utilizar estos métodos para realizar cålculos como parte de las etapas de agregación $group y $setWindowFields.

  • Agrega una nueva Ascendente() y Descendente() mĂ©todos sobrecargados a la clase SortDefinitionBuilder. Puedes utilizar estos mĂ©todos para ordenar elementos por valor al utilizar el operador de actualizar $sort.

  • Agrega soporte para el uso de un proxy SOCKS5 para conectarse a MongoDB. Se pueden especificar las configuraciones de conexiĂłn SOCKS5 en la cadena de conexiĂłn o utilizando la propiedad MongoClientSettings.Socks5ProxySettings.

  • Agrega soporte para la interfaz IAsyncEnumerable<T> en cursores y LINQ. Puedes usar la sintaxis await foreach para iterar asincrĂłnicamente sobre los resultados de las query.

  • Agrega soporte para big-endian a las clases BinaryVectorReader y BinaryVectorWriter.

  • Realiza cambios en subsistemas internos en preparaciĂłn para admitir el tiempo de espera de operaciones del lado del cliente (CSOT) en una versiĂłn prĂłxima. Esperamos que estos cambios sean retrocompatibles y que no afecten el comportamiento actual de los controladores. PĂłngase en contacto con MongoDB si experimenta alguno de los siguientes problemas:

    • Las operaciones se agotan inesperadamente o no se agotan cuando se espera.

    • Retrasos inusuales o bloqueos en las llamadas a la base de datos

    • Diferencias en el comportamiento al cancelar comandos

    Para conocer las mejores formas de encontrar ayuda, consulta la pĂĄgina de Problemas y ayuda. Por favor, proporciona los registros del controlador y una reproducciĂłn si es posible.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.5 en GitHub.

La versiĂłn del controlador 3.4 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Agrega el mĂ©todo LINQ Mql.Convert() para convertir entre tipos al realizar agregaciones. Para obtener mĂĄs informaciĂłn, consulte la secciĂłn $convert de la guĂ­a LINQ.

  • Agrega soporte para el mĂ©todo LINQ de KeyValuePair.Create().

  • Agrega el mĂ©todo GeoNear() aggregation builder para construir una etapa de agregaciĂłn $geoNear. Para ver ejemplos, consulta la referencia de $geoNear en el manual de MongoDB Server.

  • Permite convertir desde una interfaz a un tipo que implementa esa interfaz en consultas LINQ.

  • Admite el mĂ©todo constructor Dictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection) en LINQ.

  • Agrega las siguientes opciones para las consultas de MongoDB Search:

    • MatchCriteria en SearchTextOptions para establecer criterios de coincidencia para los tĂ©rminos pasados al mĂ©todo operador Text().

    • Synonyms en SearchPhraseOptions para establecer el nombre de la definiciĂłn de asignaciĂłn de sinĂłnimos cuando se utilice el mĂ©todo del operador Phrase().

    Para obtener mĂĄs informaciĂłn sobre cĂłmo realizar bĂșsquedas en MongoDB, consulta la guĂ­a MongoDB Search.

  • Admite consultas LINQ despuĂ©s de convertir los objetos IQueryable<Derived> en IQueryable<Base>.

  • Corrige el comportamiento del operador MongoDB Search para utilizar serializadores configurados en lugar de serializadores predefinidos. Para utilizar el comportamiento anterior, establezca la siguiente opciĂłn:

    SearchDefinition.UseConfiguredSerializers(false);

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.4 en GitHub.

La 3.3 versiĂłn de driver incluye las siguientes funcionalidades:

  • Agrega un nuevo campo NamespaceType que indica el tipo de objeto creado para los eventos create en la clase ChangeStreamDocument. Para obtener mĂĄs informaciĂłn sobre los flujos de cambios, consulta la guĂ­a Supervisar los cambios de datos.

  • Añade las siguientes funcionalidades de encriptaciĂłn en uso:

    • Soporte para la etapa de agregaciĂłn $lookup

    • Una propiedad ClientEncryptionOptions que configura la vida Ăștil de la cachĂ© de la llave de cifrado de datos

    Para obtener mĂĄs informaciĂłn sobre el cifrado en uso, consulta la guĂ­a de Cifrado en uso.

  • Agrega las siguientes funcionalidades de LINQ:

    • Compatibilidad con los mĂ©todos de agregaciĂłn LINQ SkipWhile() y TakeWhile(). Para mĂĄs informaciĂłn, consulta las secciones Omitir por condiciĂłn y Limitar por condiciĂłn de la guĂ­a LINQ.

    • Soporte para la expresiĂłn $sigmoid en consultas LINQ.

    • Compatibilidad con el uso de la sintaxis LINQ para acceder a cualquier clave en un diccionario que se serializa como una string, independientemente de su tipo de datos subyacente.

  • Agrega soporte para la etapa de agregaciĂłn $rankFusion, que habilita la puntuaciĂłn de resultados basada en el ranking sobre los resultados combinados de mĂșltiples pipelines.

  • Añade soporte para $elemMatch consultas directamente a los valores proporcionando una sobrecarga del mĂ©todo ElemMatch() que solo toma un parĂĄmetro de filtro. Para obtener mĂĄs informaciĂłn, consulta Actualizar Arreglos en un Documento y Actualizar Arreglos en Muchos Documentos.

  • Agrega soporte para utilizar el mĂ©todo OfType<T>() y el operador is para comprobar el tipo de un discriminador escalar.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.3 en GitHub.

La 3.2 versiĂłn de driver incluye las siguientes funcionalidades:

  • Agrega una nueva convenciĂłn ObjectSerializerAllowedTypesConvention que le permite especificar quĂ© tipos se pueden serializar y deserializar mediante el serializador de objetos. Para obtener mĂĄs informaciĂłn sobre las convenciones, consulta la GuĂ­a de convenciones.

  • Agrega un nuevo constructor para la clase EnumRepresentationConvention que permite utilizar el parĂĄmetro topLevelOnly para especificar si la convenciĂłn se aplica Ășnicamente a las propiedades de enumeraciones o a todas las propiedades que incluyen colecciones de enumeraciones.

    Puedes crear una instancia de la clase EnumRepresentationConvention usando el nuevo constructor, como se muestra en el siguiente ejemplo:

    EnumRepresentationConvention(BsonType representation, bool topLevelOnly);
  • Optimiza las proyecciones del lado del cliente para recuperar solo los campos necesarios del servidor, en lugar de recuperar todos los campos y filtrarlos despuĂ©s.

  • Agrega las siguientes clases para admitir representaciones vectoriales binarias en MongoDB Vector Search:

    • BinaryVectorFloat32

    • BinaryVectorInt8

    • BinaryVectorPackedBit

    Para obtener mĂĄs informaciĂłn sobre MongoDB Vector Search con el driver .NET/C#, consulta la guĂ­a Ejecutar una query de bĂșsqueda vectorial en MongoDB.

  • Agrega la propiedad DocumentFormat al DateOnlySerializer. Esta propiedad permite personalizar la forma en que el controlador serializa los valores de DateOnly. Esta versiĂłn tambiĂ©n agrega el atributo [BsonDateOnlyOptions()] para personalizar el comportamiento de serializaciĂłn para los valores DateOnly a nivel de propiedad. Para obtener mĂĄs informaciĂłn, consulta la secciĂłn SerializaciĂłn de DateOnly personalizada de la guĂ­a POCO.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.2 en GitHub.

La 3.1 versiĂłn de driver incluye las siguientes funcionalidades:

  • Agrega nuevos serializadores por defecto para colecciones inmutables en el namespace System.Collections.Immutable. El driver ahora puede serializar ImmutableArray objetos, y la serializaciĂłn para otras colecciones inmutables es mĂĄs eficiente en cuanto al uso de memoria.

  • Añade el tipo SearchIndexType para admitir la creaciĂłn de Ă­ndices de MongoDB Vector Search de forma programĂĄtica. Para obtener mĂĄs informaciĂłn, consulta la guĂ­a Índices de MongoDB Search y MongoDB Vector Search.

  • Agrega soporte para el tipo de campo de token y expresiones de campos de array con los constructores de MongoDB Search para el operador equals. Para obtener mĂĄs informaciĂłn sobre el uso de MongoDB Search con el driver .NET/C#, consulta MongoDB Search.

  • Agrega soporte para las siguientes MongoDB Search consultas:

    • Uso del mĂ©todo del operador Equals() en valores null y Guid

    • Utilizar el mĂ©todo operador In() en los valores Guid

    Para obtener mĂĄs informaciĂłn sobre estos mĂ©todos, consulte la secciĂłn Operadores y recolectores de bĂșsqueda de MongoDB en la guĂ­a de MongoDB Search.

  • Agrega soporte para paginaciĂłn secuencial en la bĂșsqueda de MongoDB Search.

  • Agrega soporte para nombres de host SRV vĂĄlidos con menos de 3 partes.

  • Se agrega compatibilidad para los mĂ©todos Exists, IsMissing y IsNullOrMissing en los filtros de la API de query de MongoDB.

  • Añade soporte para la bĂșsqueda vectorial Exact Nearest Neighbor (ENN). Para aprender mĂĄs sobre la BĂșsqueda Vectorial ENN, consulta Ejecutar consultas de bĂșsqueda vectorial en la documentaciĂłn de MongoDB Search.

  • Agrega una opciĂłn de ordenaciĂłn para operaciones de actualizaciĂłn y reemplazo. Este cambio permite establecer un orden de clasificaciĂłn si varios documentos coinciden con su filtro al intentar actualizar o reemplazar un solo documento. Para aprender mĂĄs, consulta las guĂ­as de Actualizar uno y Actualizar muchos.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulte las notas de versiĂłn v3.1.

Advertencia

Cambios disruptivos en la versiĂłn v3.0

El controlador v3.0 incluye cambios disruptivos. Consulta Cambios disruptivos de la versiĂłn 3.0 para obtener mĂĄs informaciĂłn.

La 3.0 versiĂłn de driver incluye las siguientes funcionalidades:

  • Agrega la opciĂłn de conexiĂłn MongoClientSettings.TranslationOptions, que especifica opciones para traducir las LINQ queries a la API de query. Consulta Especificar opciones de conexiĂłn para obtener mĂĄs informaciĂłn.

  • Agrega compatibilidad para el tipo Half, que representa un nĂșmero de punto flotante de media precisiĂłn. Este tipo estĂĄ disponible en .NET 5 y versiones posteriores. Para obtener mĂĄs informaciĂłn sobre el tipo Half, consulta la Half Struct Referencia de la API en MSDN.

  • La interfaz IMongoClient hereda la interfaz IDisposable. Como resultado, la clase MongoClient y otras clases que implementan la interfaz IMongoClient contienen una opciĂłn Disp- Adds support for the ``sort que se debe pasar a los comandos de actualizaciĂłn.ose()`` mĂ©todo, que elimina al cliente. Este mĂ©todo no elimina el clĂșster subyacente ni las conexiones con el servidor de MongoDB. Para desechar el clĂșster y las conexiones, llama al mĂ©todo ClusterRegistry.UnregisterAndDisposeCluster(). La implementaciĂłn de la interfaz IDisposable es experimental.

    Para obtener mås información sobre la interfaz IDisposable y el uso del método Dispose(), consulte Patrón Dispose en MSDN.

  • Añade compatibilidad para el tipo DateOnly, que representa un valor de fecha sin un componente de tiempo. Esta tipologĂ­a estĂĄ disponible en .NET 6 y versiones posteriores. Para obtener mĂĄs informaciĂłn sobre el DateOnly tipo, consulta la Estructura DateOnly. PĂĄgina de referencia de API en MSDN.

  • Añade soporte para el tipo TimeOnly, que representa un valor de tiempo sin componente de fecha. Esta tipologĂ­a estĂĄ disponible en .NET 6 y versiones posteriores. Para aprender mĂĄs informaciĂłn sobre el tipo TimeOnly, consulta la Estructura TimeOnly. PĂĄgina de referencia de API en MSDN.

  • Agrega soporte para la proyecciĂłn implĂ­cita del lado del cliente al usar el mĂ©todo Find(), el mĂ©todo Select() o la etapa de agregaciĂłn Project() con el proveedor LINQ3. En versiones anteriores del controlador, podĂ­a realizar proyecciĂłn del lado del cliente con el proveedor LINQ3 solo despuĂ©s de llamar al mĂ©todo ToEnumerable() o AsEnumerable().

    Para aprender a habilitar y usar la proyección del lado del cliente para un método de driver, seleccione la pestaña correspondiente:

    // 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) });

    Tip

    MongoClientSettings

    Para habilitar la proyecciĂłn del lado del cliente para todas las consultas en un cliente, establece la propiedad TranslationOptions de tu objeto MongoClientSettings, como se muestra en el siguiente ejemplo:

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

    Para obtener mĂĄs informaciĂłn sobre el uso del pipeline de agregaciĂłn con el driver .NET/C#, consulte Operaciones de agregaciĂłn.

  • Agrega una API MongoClient para operaciones de escritura masiva. Para obtener mĂĄs informaciĂłn sobre las operaciones de escritura masiva, consulte Operaciones de escritura masiva.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulte las notas de versiĂłn v3.0.

El 2.30 driver no introduce nuevas funcionalidades ni correcciones de errores. Su propĂłsito es facilitar la migraciĂłn a la versiĂłn v3.x del controlador .NET/C# marcando las API pĂșblicas que fueron eliminadas en la versiĂłn v3.0 como obsoletas.

La versiĂłn 2.29 de driver agrega compatibilidad con MongoDB Server versiĂłn 8.0 e incluye las siguientes nuevas funcionalidades:

  • Agrega soporte para la versiĂłn2 del protocolo de rango Queryable Encryption.

  • Agrega soporte para Ă­ndices de rango para Queryable Encryption. Para obtener mĂĄs informaciĂłn sobre Queryable Encryption, consulta Queryable Encryption en el manual de MongoDB Server.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulte las notas de versiĂłn v2.29.

Advertencia

Cambio disruptivo potencial en v2.28

  • Todos los componentes del driver de .NET/C# tienen nombres sĂłlidos y concretos. Si su aplicaciĂłn tiene dependencias que hacen referencia a varias versiones del .NET/C# Driver, debe crear redireccionamientos de enlaces para gestionar esas dependencias. Para mĂĄs informaciĂłn, consulta Cambio disruptivo de la versiĂłn 2.28.0.

La 2.28 versiĂłn de driver incluye las siguientes funcionalidades:

  • Añade soporte para conversiones numĂ©ricas adicionales que involucren Nullable<T>.

  • Agrega compatibilidad con la opciĂłn delegated cuando se utiliza KMIP para CSFLE o Queryable Encryption.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulte las notas de versiĂłn v2.28.

La 2.27 versiĂłn de driver incluye las siguientes funcionalidades:

  • Añade soporte para el operador de agregaciĂłn $sample.

  • Implementa el mĂ©todo Equals() para los serializadores en LINQ3.

  • Garantiza que las preocupaciones de lectura y el nivel de confirmaciĂłn de escritura (write concern) no se apliquen a los comandos del asistente de Ă­ndice de bĂșsqueda de MongoDB para evitar errores.

  • No se permite el uso del carĂĄcter de coma en authMechanismProperties valores de cadena de conexiĂłn cuando se usa el mecanismo de autenticaciĂłn MONGODB-OIDC.

  • Corrige un error de traducciĂłn que causaba un error durante la serializaciĂłn con nĂșmeros de diferentes tamaños.

  • Agrega soporte para las distribuciones de Linux que usan la librerĂ­a libdl.so.2.

Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulte las notas de versiĂłn v2.27.

La 2.26 versiĂłn de driver incluye las siguientes funcionalidades:

  • Se añadiĂł el soporte para utilizar el mĂ©todo de agregaciĂłn SelectMany() en las etapas de agregaciĂłn Select() y Project().

  • Se ha añadido compatibilidad con llamadas Dictionary.ContainsValue() en consultas LINQ.

  • Se agregĂł soporte para concatenaciĂłn de strings de tipos mixtos.

  • Uso del nativo activado crypto en libmongocrypt enlaces.

  • Añadido soporte para la serializaciĂłn de las estructuras Memory y ReadOnlyMemory. Para obtener mĂĄs informaciĂłn sobre la implementaciĂłn de estos tipos, consulta la secciĂłn Mejorar el rendimiento de la serializaciĂłn de arreglos de la guĂ­a de serializaciĂłn.

  • Se agregĂł compatibilidad para el proveedor de identidad de GCP cuando se utiliza el mecanismo de autenticaciĂłn MONGODB-OIDC. Para obtener mĂĄs informaciĂłn, consulte GCP IMDS en la guĂ­a de Mecanismos de AutenticaciĂłn Empresarial.

  • Se implementĂł la firma de paquetes NuGet.

  • Se implementaron reintentos de lectura y escritura a otras instancias de mongos cuando es posible.

La 2.25 versiĂłn de driver incluye las siguientes funcionalidades:

  • Se agregĂł soporte para el mecanismo de autenticaciĂłn MONGODB-OIDC y la adquisiciĂłn automĂĄtica de tokens para el Proveedor de Identidad de Azure.

  • Se agregĂł el nombre de la clase al mensaje de error reportado cuando BsonClassMapSerializer no puede ubicar un creador coincidente.

  • Se añadiĂł un campo LoggedStages para mostrar el MQL ejecutado tras realizar una query LINQ.

  • Se añadiĂł soporte para sobreescribir el nombre del servicio "mongodb" con un nombre personalizado utilizando la opciĂłn de conexiĂłn srvServiceName. Para obtener mĂĄs informaciĂłn, consulta la guĂ­a Especificar Opciones de ConexiĂłn.

  • Comportamiento mejorado de las operaciones de escritura masiva para evitar la enumeraciĂłn del parĂĄmetro de solicitudes mĂĄs de una vez.