找到对象并进行比较后获得价值

问题描述

数据库中:

{
    "_id" : ObjectId("5f60f699be094b2ee07a3590"),"USERNAME" : "dawdwa","PASSWORD" : "dwaawaw"
}

在C#代码中:

var filter = Builders<BsonDocument>.Filter.Eq("USERNAME","dawdwa");
 var doc = collection.Find(filter).FirstOrDefault();

通过上面的Username键搜索时,如何获得Passwork值。 我得到用户输入的用户名值。然后,我使用上面的用户名查找对象,当我找到要比较的其他用户名时如何获得密码。 对不起我的英语不好。谢谢大家。

解决方法

如果您将文档建模为C#类,则在将文档从数据库中取出后,就可以使用常规属性。

class User
{
    public ObjectId Id { get; set; }

    [BsonElement("USERNAME")]
    public string Username { get; set; }

    [BsonElement("PASSWORD")]
    public string Password { get; set; }
}
var client = new MongoClient();
var db = client.GetDatabase("test");
var collection = db.GetCollection<User>("users");

var filter = Builders<User>.Filter.Eq(x => x.Username,"dwaawaw");

var results = await collection.Find(filter)
    .ToListAsync();

foreach (var result in results)
{
    // You'll be able to access password through the `Password` property
    Console.WriteLine($"{result.Id},{result.Username},{result.Password}");
}

这还具有您将拥有更多类型安全查询的优势。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...