Descubra qué hay de nuevo en:
Novedades en 3.10
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,$topNy$bottomN.Agrega soporte para el
$topNy acumuladores similares en$setWindowFields.Agrega los acumuladores de agregaciĂłn
$concatArraysy$setUnion.Agrega soporte
$setWindowFieldspara 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
doesNotAffectde los operadores de MongoDB Searchin,range,equalsycompound.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_MSGcuando el servidor lo admite.Permite que los objetos
MongoClientinstanciados envĂen metadatos del cliente on-demand.Utiliza la versiĂłn de cable mĂnima admitida para
CompatibilityLevelcuando el valor es nulo.Deserializa en una propiedad
BsonBinaryDatacuando falta el campo correspondiente onullen el documento almacenado, en lugar de generar un error de deserializaciĂłn.Optimiza la eliminaciĂłn de
AsyncCursorpara consumir menos recurso.Corrige el comportamiento inconsistente de
EnsureNoMemberMapConflictspara 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
GuidSerializerpara las propiedades de tipo de objeto Realm.Corrige un error que se producĂa cuando las query utilizaban
Equalscon diferentes tipos.Corrige un
NullReferenceExceptionlanzado porFilteredMongoCollectionBase.FindOneAndUpdatecuando las opciones son nulas.Corrige un problema por el que al borrar el pool de conexiones con
closeInUseConnectionsaparecĂa unObjectDisposedExceptionsin 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.
Novedades en 3.9
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
VectorIndexingMethody la propiedadIndexingMethoda las clases del modelo de Ăndice de bĂșsqueda vectorial. Puedes utilizarVectorIndexingMethod.Flatpara 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
ReadOnlySpancompatibilidad al anĂĄlisis deObjectIdpara eliminar las asignaciones temporales de arreglos de bytes.Traduce correctamente las expresiones LINQ que llaman a
Parse()en tipos numéricos comobyte,floatylonga consultas MongoDB.Traduce correctamente las expresiones LINQ que llaman a
string.TrimStart()ostring.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
maxIdleTimeMSa0para desactivar el lĂmite de tiempo de inactividad para las conexiones.Corrige una regresiĂłn en la que el campo
filterse renombrĂł incorrectamente aparentFilteren determinadas expresiones previamente admitidas.Corrige el
NamedIdMemberConventionpara respetar el atributoBsonElemental resolver el nodo de ID.Garantiza que el comando
endSessionsse ejecute al cerrarServerSessionPoolpara liberar adecuadamente las sesiones del servidor.Se corrige un
NullReferenceExceptionque ocurrĂa al proyectar un arreglo nullable con unSelect()condicional en LINQ.Corrige un
StackOverflowExceptionen la aplicaciĂłn de convenciones al procesar tiposIEnumerable<T>autorreferenciados.Actualiza la dependencia
SharpCompresspara abordar una vulnerabilidad de seguridad.
Para aprender mĂĄs sobre esta versiĂłn, consulta las Notas de la versiĂłn v3.9 en GitHub.
Novedades en 3.8
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 campoto: "string"del operador$convert.El método también puede convertir una cadena JSON en un objeto
BsonDocumentuBsonArray. El controlador asigna estas operaciones a los operadores de agregaciĂłn$toObjecto$toArray, que son equivalentes a los camposto: "object"yto: "array"del operador$convert.La clase
ConvertOptionsincluye una propiedadBase, 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()yMql.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 valorObjectIdĂș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()yWhere()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()yTakeWhile()dentro de las proyeccionesSelect()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()yRegex.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 campoBinData.Agrega los métodos LINQ
Mql.Hash()yMql.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()yHasAncestor()y el parĂĄmetroreturnScopepara los mĂ©todosSearch()ySearchMeta(). 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
storedSourceen los modelos de Ăndice MongoDB bĂșsqueda vectorial y la opciĂłnreturnStoredSourceen las etapas de agregaciĂłn$vectorSearch.Agrega los mĂ©todos LINQ
Mql.SimilarityDotProduct(),Mql.SimilarityCosine()yMql.SimilarityEuclidean()para calcular puntuaciones de similitud vectorial en las consultas.Agrega la propiedad
Similarityy, los mĂ©todosWithIncludedStoredFields()yWithExcludedStoredFields()a la claseCreateAutoEmbeddingVectorSearchIndexModelpara 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
SingleServerReadBindingpodĂ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
SerializerFindersolucionaba el serializador incorrecto para los nodosBsonDocument.
Para obtener mĂĄs informaciĂłn sobre esta versiĂłn, consulta las notas de versiĂłn v3.8 en GitHub.
Novedades de 3.7
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
SnapshotTimeespecĂ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
withTransactionpara 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
charcon valores constantes.Agrega soporte para
ConvertCheckedexpresiones.Reescribe las consultas que utilizan los operadores
$elemMatchy$orinvirtiendo el orden de los operadores, debido a una limitaciĂłn del servidor.Implementa un nuevo sistema de
KnownSerializerFinderque 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
_tempdeByteBufferStream.Optimiza la clase
CommandEventHelperpara evitar la decodificaciĂłn redundante de mensajes.Corrige el comportamiento de serializaciĂłn para los enums que tienen
ushorttipos subyacentes.Genera un
ExpressionNotSupportedExceptionsiString.IndexOf()comparaciones a valores negativos.Evita generar un
ClusterDescriptionChangedEventcuando 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
IPAddressSerializerpara serializar instancias deIPAddresssin generar un error.Corrige un error en el que el optimizador
GroupBygeneraba rutas de campo incorrectas para los acumuladoresFirstyLastsi 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.
Novedades en 3.6
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
CreateAutoEmbeddingVectorSearchIndexModelpara 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
TimeOnlypara 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
Dictionarycomo tipos deIEnumerable<KeyValuePair<TKey, TValue>>.Agrega compatibilidad para las propiedades
DictionaryKeysyValuesen las consultas LINQ.Añade una sobrecarga de constructor
Decimal128para tiposbyteyshortpara 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
MemoryExtensionsen lugar de métodosEnumerable.Mapea los métodos
MemoryExtensions.Contains()yMemoryExtensions.SequenceEqual()que tienen un comparador nulo aEnumerablemé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()enBsonClassMapSerializer.DeserializeClass().Usa
KeyValuePairSerializerde forma constante paraKeyValuePair.Evita el
RentedBufferiminamiento/clasificaciĂłn en la claseDisposableSegment.Evita asignaciones para
BsonBinaryReaderContextyBsonBinaryWriterContext.Cambia a un bucle
forenBsonClassMapSerializer.SerializeClass()para reducir las asignaciones.
Optimiza la traducción de LINQ para los métodos
First()yFirstOrDefault()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.
Novedades en 3.5
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
$groupy$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 sintaxisawait foreachpara iterar asincrĂłnicamente sobre los resultados de las query.Agrega soporte para big-endian a las clases
BinaryVectorReaderyBinaryVectorWriter.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.
Novedades en 3.4
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:
MatchCriteriaenSearchTextOptionspara establecer criterios de coincidencia para los términos pasados al método operadorText().SynonymsenSearchPhraseOptionspara establecer el nombre de la definición de asignación de sinónimos cuando se utilice el método del operadorPhrase().
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>enIQueryable<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.
Novedades en 3.3
La 3.3 versiĂłn de driver incluye las siguientes funcionalidades:
Agrega un nuevo campo
NamespaceTypeque indica el tipo de objeto creado para los eventoscreateen la claseChangeStreamDocument. 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
ClientEncryptionOptionsque 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()yTakeWhile(). 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
$sigmoiden 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 operadorispara 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.
Novedades en 3.2
La 3.2 versiĂłn de driver incluye las siguientes funcionalidades:
Agrega una nueva convenciĂłn
ObjectSerializerAllowedTypesConventionque 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
EnumRepresentationConventionque permite utilizar el parĂĄmetrotopLevelOnlypara 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
EnumRepresentationConventionusando 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:
BinaryVectorFloat32BinaryVectorInt8BinaryVectorPackedBit
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
DocumentFormatalDateOnlySerializer. Esta propiedad permite personalizar la forma en que el controlador serializa los valores deDateOnly. Esta versiĂłn tambiĂ©n agrega el atributo[BsonDateOnlyOptions()]para personalizar el comportamiento de serializaciĂłn para los valoresDateOnlya 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.
Novedades en 3.1
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
ImmutableArrayobjetos, y la serialización para otras colecciones inmutables es mås eficiente en cuanto al uso de memoria.Añade el tipo
SearchIndexTypepara 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 valoresnullyGuidUtilizar el método operador
In()en los valoresGuid
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,IsMissingyIsNullOrMissingen 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.
Novedades en 3.0
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 tipoHalf, consulta la Half Struct Referencia de la API en MSDN.La interfaz
IMongoClienthereda la interfazIDisposable. Como resultado, la claseMongoClienty otras clases que implementan la interfazIMongoClientcontienen una opciĂłnDisp- Adds support for the ``sortque 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Ă©todoClusterRegistry.UnregisterAndDisposeCluster(). La implementaciĂłn de la interfazIDisposablees experimental.Para obtener mĂĄs informaciĂłn sobre la interfaz
IDisposabley el uso del métodoDispose(), 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 elDateOnlytipo, 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 tipoTimeOnly, 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Ă©todoSelect()o la etapa de agregaciĂłnProject()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Ă©todoToEnumerable()oAsEnumerable().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
TranslationOptionsde tu objetoMongoClientSettings, 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
MongoClientpara 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.
Novedades en 2.30
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.
Novedades en 2.29
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.
Novedades en 2.28
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
delegatedcuando 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.
Novedades en 2.27
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
authMechanismPropertiesvalores de cadena de conexiĂłn cuando se usa el mecanismo de autenticaciĂłnMONGODB-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.
Novedades en 2.26
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ónSelect()yProject().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
cryptoenlibmongocryptenlaces.Añadido soporte para la serialización de las estructuras
MemoryyReadOnlyMemory. 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
mongoscuando es posible.
Novedades en 2.25
La 2.25 versiĂłn de driver incluye las siguientes funcionalidades:
Se agregĂł soporte para el mecanismo de autenticaciĂłn
MONGODB-OIDCy 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
BsonClassMapSerializerno puede ubicar un creador coincidente.Se añadió un campo
LoggedStagespara 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ĂłnsrvServiceName. 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.