Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

518
Vistas
¿Cómo guardar/pasar MongoDB UpdateDefinition para iniciar sesión y usar más tarde?

Estoy perplejo sobre cómo guardar/pasar MongoDB UpdateDefinition para iniciar sesión y usar más adelante

Creé funciones generales para MongoDB en uso de Azure en una colección para obtener, insertar, eliminar y actualizar que funcionan bien.

El propósito es poder tener una forma estándar y preconfigurada de interactuar con la colección. Especialmente para la actualización, el objetivo es poder pasar de manera flexible una definición de actualización adecuada donde esa lógica comercial se realiza en otro lugar y se pasa.

Puedo crear/actualizar/establecer/combinar UpdateDefinition, pero cuando intento registrarlo serializándolo, muestra nulo:

 JsonConvert.SerializeObject(updateDef)

Cuando intento registrarlo, guardarlo en otra clase o pasarlo a otra función, muestra nulo:

 public class Account { [BsonElement("AccountId")] public int AccountId { get; set; } [BsonElement("Email")] public string Email { get; set; } } var updateBuilder = Builders<Account>.Update; var updates = new List<UpdateDefinition<Account>>(); //just using one update here for brevity - purpose is there could be 1:many depending on fields updated updates.Add(updateBuilder.Set(a => a.Email, email)); //Once all the logic and field update determinations are made var updateDef = updateBuilder.Combine(updates); //The updateDef does not serialize to string, it displays null when logging. _logger.LogInformation("{0} - Update Definition: {1}", actionName, JsonConvert.SerializeObject(updateDef)); //Class Created for passing the Account Update Information for Use by update function public class AccountUpdateInfo { [BsonElement("AccountId")] public int AccountId { get; set; } [BsonElement("Update")] public UpdateDefinition<Account> UpdateDef { get; set; } } var acct = new AccountUpdateInfo(); acctInfo.UpdateDef = updateDef //This also logs a null value for the Update Definition field when the class is serialized. _logger.LogInformation("{0} - AccountUpdateInfo: {1}", actionName, JsonConvert.SerializeObject(acct));

Cualquier pensamiento o idea sobre lo que está sucediendo? Estoy perplejo sobre por qué no puedo serializar para iniciar sesión o pasar el valor en una clase como esperaría

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

prueba esto:

 var json = updateDef.Render( BsonSerializer.SerializerRegistry.GetSerializer<Account>(), BsonSerializer.SerializerRegistry) .AsBsonDocument .ToString();

y para convertir una cadena json en una definición de actualización (usando un operador implícito), puede hacer lo siguiente:

 UpdateDefinition<Account> updateDef = json;

esto está fuera de mi cabeza y no probado. lo único de lo que no estoy seguro (sin un IDE) es la parte .Document.ToString() anterior.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda