c# - MongoDB C# 驱动程序 - 忽略绑定(bind)字段

使用 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/

相关文章:

javascript - Node.js - 使用 Mongoose 创建关系

windows - Mongodb:连接127.0.0.1:27017失败,原因:errno:100

java - 使用 MongoDB 进行单元测试

mongodb - 使用 Mongoose 找不到按 ObjectId 搜索的文档

MongoDB - 如何查询集合中的嵌套项?

mongodb - MongoDB 和 CouchDB 是完美的替代品吗?

mongodb - 如何查找然后聚合

mongodb - MongoDB 将写入锁定到什么级别? (或 : what does it me

mongodb - 有没有限制 mongodb 内存使用的选项?

mongodb - mongodb可以作为嵌入式数据库使用吗?