Tengo una serie de ObjectIds y quiero actualizar una propiedad en todos los documentos donde hay una coincidencia con los ObjectIds. Entonces, básicamente, el equivalente SQL de:
update collection set prop = false where id in (1,2,3)
La consulta que he creado para Mongo es:
List<BsonValue> output = GetValues(); var builder = Builders<MyCollection>.Filter; var filter = builder.In("_id", output); var update = Builders<MyCollection>.Update.Set("Prop", false); var result = myCollection.UpdateMany(filter, update);Sin embargo, obtengo la siguiente excepción cuando ejecuto:
El elenco especificado no es válido.
¿Alguna idea de lo que estoy haciendo mal? ¡Gracias por adelantado!
ACTUALIZAR
Así que esta consulta estuvo bien... parece que el problema estaba en mi clase.
mi clase fue:
public class MyCollection { [BsonId] public ObjectId _id { get; set; } //Other properties }Aparentemente, el ObjectId no se estaba mapeando correctamente. No tenía una necesidad explícita, así que lo eliminé y comenzó a funcionar a partir de entonces.
Espero que esto ayude a alguien más.
Respondiendo a mi propia pregunta para que pueda ayudar a alguien más en el futuro.
mi clase fue:
public class MyCollection { [BsonId] public ObjectId _id { get; set; } } //Other properties }La propiedad ObjectId no se estaba asignando correctamente. En mi caso, no lo necesitaba, así que lo eliminé y comenzó a funcionar a partir de entonces.