Tengo un modelo MongoDB que consta de un Id (Guid) y una lista de Id (que también son Guid). Ahora... por alguna razón, quiero consultar la lista de UserIds y si hay un elemento con un Guid determinado, quiero eliminarlo de mi Mongo Array.
Así que aquí hay una parte de mi modelo:
public class Model { [BsonId] [BsonRepresentation(BsonType.String)] public Guid Id { get; set; } [BsonElement("userIds")] public List<Guid> UserIds{ get; set; } }y aquí está el fragmento de código del repositorio donde se debe eliminar un elemento de la lista de Guids.
var filter = Builders<Models.Event>.Filter.Eq(m => m.Id, someId); var update = Builders<Models.Event>.Update.PullFilter(m => m.UserIds, i => i == userId); await _events.FindOneAndUpdateAsync(filter, update);En teoría, esto debería funcionar... El problema es que Mongo sigue dándome el siguiente error:
"error": "{document} is not supported.",Por alguna razón, mi PullFilter no parece poder identificar mi Guid en la base de datos.
Así es como se almacena el Guid en la base de datos:
userIds:Array 0:Binary('WYsLZis0RkOeiQ1RNyjzGw==', 3)¿Es esto un problema de conversión? ¿Debo usar una cadena en lugar de un Guid aquí? No puedo entender exactamente lo que está sucediendo detrás de escena y por qué esto no funcionaría.
También intenté modificar el código para que el Guid se convierta en una cadena y verifique el valor con mi ID de usuario.ToString() pero luego, obtengo {document}.ToString() is not supported .
¿Alguien encontró esto antes?