使用 MongoDB 和 C# 使用 FindOne() 时,有没有办法忽略对象中未找到的字段?
EG,示例模型。
public class UserModel
{
public ObjectId id { get; set; }
public string Email { get; set; }
}
现在我们还在 MongoDB 集合中存储了一个密码,但不想将其绑定(bind)到上面的 out 对象。当我们像这样进行 Get 时,
var query = Query<UserModel>.EQ(e => e.Email, model.Email);
var entity = usersCollection.FindOne(query);
我们得到以下错误
Element 'Password' does not match any field or property of class
有没有办法告诉 Mongo 忽略它无法与模型匹配的字段?
最佳答案
是的。只需使用 BsonIgnoreExtraElements
属性装饰您的 UserModel
类:
[BsonIgnoreExtraElements]
public class UserModel
{
public ObjectId id { get; set; }
public string Email { get; set; }
}
顾名思义,驱动程序会忽略任何额外的字段,而不是抛出异常。更多信息在这里 - Ignoring Extra Elements .
https://stackoverflow.com/questions/23448634/